الفرق بين المراجعتين لصفحة: «PHP/is subclass of»
لا ملخص تعديل |
لا ملخص تعديل |
||
| سطر 25: | سطر 25: | ||
== سجل التغييرات == | == سجل التغييرات == | ||
{| class="wikitable" | {| class="wikitable" | ||
!الإصدار | |||
!الوصف | |||
|- | |- | ||
|5.3.9 | |5.3.9 | ||
| سطر 78: | سطر 78: | ||
} | } | ||
?> | ?> | ||
</syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight> | </syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight lang="text"> | ||
yes, $WFC is a subclass of WidgetFactory | |||
no, $WF is not a subclass of WidgetFactory | no, $WF is not a subclass of WidgetFactory | ||
yes, WidgetFactory_Child is a subclass of WidgetFactory | yes, WidgetFactory_Child is a subclass of WidgetFactory | ||
| سطر 118: | سطر 118: | ||
} | } | ||
?> | ?> | ||
</syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight> | </syntaxhighlight>سينتج المثال السابق الناتج الآتي:<syntaxhighlight lang="text"> | ||
Yes, $my_object is a subclass of MyInterface | Yes, $my_object is a subclass of MyInterface | ||
Yes, MyClass is a subclass of MyInterface | Yes, MyClass is a subclass of MyInterface | ||
| سطر 125: | سطر 125: | ||
== ملاحظات == | == ملاحظات == | ||
ملاحظة: عند استخدام هذه الدالة ستُستخدَم أيّة تحميلات تلقائية <code>autoloaders</code> | ملاحظة: عند استخدام هذه الدالة ستُستخدَم أيّة تحميلات تلقائية <code>autoloaders</code> مُسجلة إذا لم يكن الصنف مُعرَّفًا من قبل. | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة <code>get_class()</code>: إعادة اسم الصنف لكائن. | * الدالة <code>[[PHP/get class|get_class()]]</code>: إعادة اسم الصنف لكائن. | ||
* الدالة <code>[[PHP/get parent class|get_parent_class()]]</code>: الحصول على اسم الصنف الأب لكائن أو لصنف. | * الدالة <code>[[PHP/get parent class|get_parent_class()]]</code>: الحصول على اسم الصنف الأب لكائن أو لصنف. | ||
* الدالة <code>[[PHP/is a|is_a()]]</code>: التحقق فيما إذا كان الكائن من صنفٍ ما أو يملك ذاك الصنف كواحد من الأصناف الآباء له. | * الدالة <code>[[PHP/is a|is_a()]]</code>: التحقق فيما إذا كان الكائن من صنفٍ ما أو يملك ذاك الصنف كواحد من الأصناف الآباء له. | ||
* الدالة <code>class_parents()</code> | * الدالة <code>[[PHP/class parents|class_parents()]]</code>: إعادة الأصناف الآباء للصنف المُعطى. | ||
== مصادر == | == مصادر == | ||
المراجعة الحالية بتاريخ 03:39، 16 أبريل 2018
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
تتحقق الدالة is_subclass_of() فيما إذا كان يملك الكائن صنفًا ما كواحد من الأصناف الآباء له أو ينفذه.
الوصف
bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] )
تتحقق الدالة is_subclass_of() فيما إذا كان الصنف class_name هو واحد من الأصناف الآباء للكائن object.
المعاملات
object
اسم الصنف أو نسخة الكائن. لن يولَّد خطأ إذا لم يكن الصنف موجودًا.
class_name
اسم الصنف.
allow_string
إذا ضُبِطَت قيمة هذا المعامل إلى القيمة FALSE، فلا يُسمح عندئذٍ باستخدام اسم صنف على شكل سلسلة نصية كقيمة للمعامل object. يمنع هذا أيضًا استدعاء autoloader إذا لم يكن الصنف موجودًا.
القيم المعادة
تُعيد الدالة is_subclass_of() القيمة TRUE إذا كان الكائن object ينتمي إلى صنف هو صنف فرعي من الصنف class_name، وإلاّ فإنها تُعيد القيمة FALSE.
سجل التغييرات
| الإصدار | الوصف |
|---|---|
| 5.3.9 | أُضيف المعامل allow_string.
|
| 5.3.7 | أُضيف دعم إلى class_name ليعمل مع الواجهات.
|
| 5.0.3 | يمكنك تحديد المعامل object بسلسلة نصية (اسم الصنف).
|
أمثلة
المثال 1: مثال عن استخدام الدالة is_subclass_of()
<?php
// تعريف صنف
class WidgetFactory
{
var $oink = 'moo';
}
// تعريف صنف ابن
class WidgetFactory_Child extends WidgetFactory
{
var $oink = 'oink';
}
// تعريف كائن جديد
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();
if (is_subclass_of($WFC, 'WidgetFactory')) {
echo "yes, \$WFC is a subclass of WidgetFactory\n";
} else {
echo "no, \$WFC is not a subclass of WidgetFactory\n";
}
if (is_subclass_of($WF, 'WidgetFactory')) {
echo "yes, \$WF is a subclass of WidgetFactory\n";
} else {
echo "no, \$WF is not a subclass of WidgetFactory\n";
}
// PHP 5.0.3قابل للاستخدام فقط منذ الإصدار
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>
سينتج المثال السابق الناتج الآتي:
yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory
المثال 2: مثال عن استخدام الدالة is_subclass_of() مع واجهة
<?php
// تعريف الواجهة
interface MyInterface
{
public function MyFunction();
}
// تعريف تنفيذ الصنف للواجهة
class MyClass implements MyInterface
{
public function MyFunction()
{
return "MyClass Implements MyInterface!";
}
}
// نسخ الكائن
$my_object = new MyClass;
// يعمل منذ الاصدار 5.3.7
// اختبار استخدام نسخة الكائن للصنف
if (is_subclass_of($my_object, 'MyInterface')) {
echo "Yes, \$my_object is a subclass of MyInterface\n";
} else {
echo "No, \$my_object is not a subclass of MyInterface\n";
}
// اختبار استخدام السلسلة النصية لاسم الصنف
if (is_subclass_of('MyClass', 'MyInterface')) {
echo "Yes, MyClass is a subclass of MyInterface\n";
} else {
echo "No, MyClass is not a subclass of MyInterface\n";
}
?>
سينتج المثال السابق الناتج الآتي:
Yes, $my_object is a subclass of MyInterface
Yes, MyClass is a subclass of MyInterface
ملاحظات
ملاحظة: عند استخدام هذه الدالة ستُستخدَم أيّة تحميلات تلقائية autoloaders مُسجلة إذا لم يكن الصنف مُعرَّفًا من قبل.
انظر أيضًا
- الدالة
get_class(): إعادة اسم الصنف لكائن. - الدالة
get_parent_class(): الحصول على اسم الصنف الأب لكائن أو لصنف. - الدالة
is_a(): التحقق فيما إذا كان الكائن من صنفٍ ما أو يملك ذاك الصنف كواحد من الأصناف الآباء له. - الدالة
class_parents(): إعادة الأصناف الآباء للصنف المُعطى.