شرح صفوف ومحتوى الفقرة
يوفر PHP المعامل instanceof ودوال فحص سريعة للتحقق من صنف الكائن وسلسلة وراثته والواجهات التي يطبقها وقت التشغيل.
- يُرجع التعبير
$obj instanceof TargetTypeالقيمةtrueإذا كان الكائن من نفس الصنف أو يرث منه أو يطبق تلك الواجهة. - استخدم
get_debug_type($val)(في PHP 8.0+) أو$obj::classلمعرفة اسم الصنف الفعلي للكائن وقت التشغيل. - استخدم
method_exists($obj, 'name')وproperty_exists($obj, 'prop')لفحص وجود الدوال والخصائص برمجياً.
يتحقق الكود من تطبيق الواجهة عبر instanceof، ويقرأ اسم الصنف عبر $rep::class، ويؤكد وجود الدالة toCsv().
| الأداة / الدالة | الوظيفة الأساسية | مثال |
|---|---|---|
$obj instanceof Type | Checks class, parent class, or interface match | $r instanceof Exportable |
$obj::class | Returns exact class name string (PHP 8.0+) | "SalesReport" |
method_exists($o, $m) | Checks if method is defined on object/class | method_exists($r, "toCsv") |
unserialize($s, $opts) | Restores object with class whitelist | ["allowed_classes" => [Safe::class]] |
<?php
interface Exportable { public function toCsv(): string; }
class SalesReport implements Exportable {
public function toCsv(): string { return "id,total"; }
}
$rep = new SalesReport();
echo ($rep instanceof Exportable ? "Exportable" : "No") . " | ";
echo $rep::class . " | ";
echo (method_exists($rep, "toCsv") ? "has toCsv()" : "missing") . "\n";
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
يوفر PHP المعامل instanceof ودوال فحص سريعة للتحقق من صنف الكائن وسلسلة وراثته والواجهات التي يطبقها وقت التشغيل. يُرجع التعبير $obj instanceof TargetType القيمة true إذا كان الكائن من نفس الصنف أو يرث منه أو يطبق تلك الواجهة. استخدم get_debug_type($val) (في PHP 8.0+) أو $obj::class لمعرفة اسم الصنف الفعلي للكائن وقت التشغيل. استخدم method_exists($obj, 'name') وproperty_exists($obj, 'prop') لفحص وجود الدوال والخصائص برمجياً.