
البرمجة مع بي إتش بي ويمكن أن, وفي المناسبة, كنت قد لجعل استخدام وظائف المجهول. وظائف المجهول هي الدالات التي تم تعريفها في التدفقات الخاصة التعليمات البرمجية التي تقوم بتطوير والاضطلاع بالمهام التي نستخدمها فقط في هذا المكان, ومن ثم، فإننا لا نعتقد لهم عن بعضها البعض إعادة استخدام.
عادة, وتستخدم هذه الوظائف الاستقبال من عمليات الاسترجاعات وظائف أخرى أو الأحداث, ويتم ترميز لهم أن مثل هذه المعاملة رد الاتصال o الحدث يجب أن يكون لديك. وبهذه الطريقة, يمكنك أن تجعل من تنمية أو البرمجة الموجهة للحدث, أكثر نموذجية للغات أخرى جافا سكريبت.
إذا كنت من أي وقت مضى المبرمجة في جافا سكريبت, عندما تفعل, على سبيل المثال, استدعاء الدالة setTimeout, إحدى المعلمات التي لديها رد الاتصال الدالة التي تريد تشغيله عند حدوث ذلك الحدث.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
نفس الشيء, في بي إتش بي هناك أوقات عندما يكون من الملائم استخدام عمليات الاسترجاعات مثل المعلمات لوظائف. أدناه سنرى إمكانية استخدام وظيفة مجهولة في PHP. لنفترض ان لدينا وظيفة حيث ان احدى معلماتها هي رد الاتصال:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
في المعلمة $رد الاتصال, يمكن أن نحصل على مباشرة اسم الدالة أريد تشغيله وأن لدينا سبق تعريفها, أما, مباشرة دالة المجهول. وسوف نرى شكلين:
- بدعوة سبق تعريف الدالة:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- من خلال استخدام من دالة المجهول:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
كيفية تمرير المعلمات أو المتغيرات إلى وظائف المجهول
عندما نستخدم وظائف المجهول, ضمن التعليمات البرمجية هذه, أننا لا نملك الوصول لأن متغير أو الكائنات التي قمت بتعريفها مسبقاً تدفق التعليمات البرمجية, حتى, إذا كنت بحاجة إلى الإشارة إلى بعض منها, أما علينا أن نجعل من العالمية, أما نعطي الوصول إليهم, وكما سنرى أدناه:
لنفترض المثال أعلاه مع بعض التعليمات البرمجية السابق وأضاف:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
من داخل دالة المجهول أننا لا نملك الوصول لمتغير $aux المعرفة مسبقاً. من أجل استخدام هذا المتغير, علينا أن نفعل ذلك بالطريقة التالية:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
إضافة, بعد معرف الدالة الدالة(), كلمة استخدام يتبع, بين الأقواس, المتغير الذي نريد الوصول إلى, نحن نكون السماح أن من داخل دالة المجهول لدينا الوصول إلى لمتغير, ما هي الولايات المتحدة سيتم منع الحاجة إلى تعريف المتغيرات العمومية وبيانات الاستخدام اللاحق داخل الدالة.
