الفرق بين المراجعتين لصفحة: «PHP/forward static call»
< PHP
إضافة الدالة |
لا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>forward_static_call()</code> في PHP}}</noinclude> | |||
(PHP 5 >= 5.3.0, PHP 7) | (PHP 5 >= 5.3.0, PHP 7) | ||
تستدعي الدّالة forward_static_call() دالةً ساكنةً (static) تابعةً لصنف (method). | تستدعي الدّالة <code>forward_static_call()</code> دالةً ساكنةً (static) تابعةً لصنف (method). | ||
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] ) | mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] ) | ||
</syntaxhighlight>تستدعي الدّالة forward_static_call() دالةً معرّفةً من قبل المستخدم أو دالةً تابعةً لصنفٍ ممرّرة بالمُعامل | </syntaxhighlight>تستدعي الدّالة <code>forward_static_call()</code> دالةً معرّفةً من قبل المستخدم أو دالةً تابعةً لصنفٍ ممرّرة بالمُعامل <code>function</code>، مع الوسطاء التاليين. يجب أن تُستدعى هذه الدّالة داخل سياق دالةٍ تابعةٍ لصنف، ولا يمكن استخدامها خارج الصنف. إذ تستخدم [[PHP/late static bindings|الروابط الساكنة المتأخرة]]. | ||
== المعاملات == | == المعاملات == | ||
=== <code>function</code> === | |||
=== function === | |||
الدّالة أو الدّالة التابعة لصنف التي نريد استدعائها. | الدّالة أو الدّالة التابعة لصنف التي نريد استدعائها. | ||
=== parameter === | === <code>parameter</code> === | ||
صفر أو أكثر من المعاملات التي نريد تمريرها إلى الدّالة. | صفر أو أكثر من المعاملات التي نريد تمريرها إلى الدّالة. | ||
== القيم المعادة == | == القيم المعادة == | ||
تُعاد القيمة التي ستُعيدها الدّالة، أو القيمة <code>FALSE</code> في حال حدوث خطأ. | |||
== أمثلة == | == أمثلة == | ||
المثال 1: مثال عن استخدام الدّالة <code>forward_static_call()</code><syntaxhighlight lang="php"> | |||
<?php | <?php | ||
class A | class A | ||
سطر 51: | سطر 50: | ||
?> | ?> | ||
</syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight> | </syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight lang="text"> | ||
B | B | ||
B more,args | B more,args | ||
سطر 58: | سطر 57: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة <code>[[PHP/forward static call array|()forward_static_call_array]]</code>: استدعاء دالة ساكنة تابعة لصنف مع تمرير مصفوفة من المعاملات إليها. | |||
* [[PHP/forward static call array| | * الدالة <code>[[PHP/call user func array|call_user_func_array()]]</code>: استدعاء دالة رد النداء مع تمرير مصفوفة من المعاملات إليها. | ||
* [[PHP/call user func array| | * الدالة <code>[[PHP/call user func|call_user_func()]]</code>: استدعاء دالة رد النداء الممررة في المعامل الأول. | ||
* [[PHP/call user func| | * الدالة <code>[[PHP/is callable|is_callable()]]</code>: التأكد من أن محتوى المتغير يمكن أن يستدعى كدالة. | ||
* الدالة is_callable(): التأكد من أن محتوى المتغير يمكن أن يستدعى كدالة. | * [[PHP/callable|معلومات حول النوع callback]]. | ||
* معلومات حول النوع callback. | |||
== مصادر == | == مصادر == | ||
* [http://php.net/manual/en/function.forward-static-call.php صفحة الدالة forward_static_call في توثيق PHP الرسمي.] | |||
[[تصنيف:PHP]] | |||
[[تصنيف:PHP Function]] | |||
[[تصنيف:PHP Function Handling]] |
المراجعة الحالية بتاريخ 12:37، 15 أبريل 2018
(PHP 5 >= 5.3.0, PHP 7)
تستدعي الدّالة forward_static_call()
دالةً ساكنةً (static) تابعةً لصنف (method).
الوصف
mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] )
تستدعي الدّالة forward_static_call()
دالةً معرّفةً من قبل المستخدم أو دالةً تابعةً لصنفٍ ممرّرة بالمُعامل function
، مع الوسطاء التاليين. يجب أن تُستدعى هذه الدّالة داخل سياق دالةٍ تابعةٍ لصنف، ولا يمكن استخدامها خارج الصنف. إذ تستخدم الروابط الساكنة المتأخرة.
المعاملات
function
الدّالة أو الدّالة التابعة لصنف التي نريد استدعائها.
parameter
صفر أو أكثر من المعاملات التي نريد تمريرها إلى الدّالة.
القيم المعادة
تُعاد القيمة التي ستُعيدها الدّالة، أو القيمة FALSE
في حال حدوث خطأ.
أمثلة
المثال 1: مثال عن استخدام الدّالة forward_static_call()
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "\n";
forward_static_call(array('A', 'test'), 'more', 'args');
forward_static_call( 'test', 'other', 'args');
}
}
B::test('foo');
function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>
سينتج المثال السابق الناتج الآتي:
B
B more,args
C other,args
انظر أيضًا
- الدالة
()forward_static_call_array
: استدعاء دالة ساكنة تابعة لصنف مع تمرير مصفوفة من المعاملات إليها. - الدالة
call_user_func_array()
: استدعاء دالة رد النداء مع تمرير مصفوفة من المعاملات إليها. - الدالة
call_user_func()
: استدعاء دالة رد النداء الممررة في المعامل الأول. - الدالة
is_callable()
: التأكد من أن محتوى المتغير يمكن أن يستدعى كدالة. - معلومات حول النوع callback.