الفرق بين المراجعتين لصفحة: «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()
: إعادة الأصناف الآباء للصنف المُعطى.