الفرق بين المراجعتين لصفحة: «PHP/final»
< PHP
لا ملخص تعديل |
ط نقل عبد اللطيف ايمش صفحة PHP/OOP/final إلى PHP/final: إعادة هيكلة التوثيق |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 49: | سطر 49: | ||
== مصادر == | == مصادر == | ||
* [http://php.net/manual/en/language.oop5.final.php صفحة Final Keyword في توثيق PHP الرسمي.] | * [http://php.net/manual/en/language.oop5.final.php صفحة Final Keyword في توثيق PHP الرسمي.] | ||
[[تصنيف:PHP]] | [[تصنيف:PHP|{{SUBPAGENAME}}]] | ||
[[تصنيف:PHP OOP]] | [[تصنيف:PHP OOP|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 03:50، 4 أبريل 2018
قدّم الإصدار الخامس من اللغة الكلمة المفتاحية final والتي تمنع الأصناف الأبناء من التجاوز على توابع الصنف الأب وذلك بإضافة الكلمة المفتاحية قبل عبارة تعريف التابع. إذا استُخدمت الكلمة المفتاحية final
في تعريف الصنف فإنّه يصبح غير قابل للتوسع.
المثال 1: مثال على استخدام final
في تعريف التوابع
<?php
class BaseClass {
public function test() {
echo "BaseClass::test() called\n";
}
final public function moreTesting() {
echo "BaseClass::moreTesting() called\n";
}
}
class ChildClass extends BaseClass {
public function moreTesting() {
echo "ChildClass::moreTesting() called\n";
}
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
المثال 2: مثال على استخدام final
في تعريف الأصناف
<?php
final class BaseClass {
public function test() {
echo "BaseClass::test() called\n";
}
// Here it doesn't matter if you specify the function as final or not
final public function moreTesting() {
echo "BaseClass::moreTesting() called\n";
}
}
class ChildClass extends BaseClass {
}
// Results in Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>
يمكن استخدام الكلمة المفتاحية final
مع التوابع والأصناف، ولا يمكن استخدامها مع الخاصيات.