سلام. من دارم یه کلاس مینویسم که توش چند تا تابع داره و من نمیخوام کسی بتونه با child گرفتن اون تابع رو override کنه آیا راهی هست که بتونم اینکارو انجام بدم؟ همه جارو گشتم نبود :(
سلام
من خیلی حرفه ای نیستم اما خوب وقتی سورس دست خودته دیگه نیازی به این کار نیست که خوب override نکن!
یکم بیشتر توضیح بده منظورت از child گرفتن چیه؟
تا حالا چنین چیزی نشنیدم
فکر نمیکنم چنین چیزی وجود داشته باشه من خیلی از کتابهای php رو خوندم ولی چنین چیزی ندیدم.
maJID maGIC@
از کلمه کلیدی [color=#0000ff]final[/color] استفاده کنید. میتونید هم یک کلاس و هم یک متد رو 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()
?>
Php1@
فرض کنید ما یه web app نوشتیم که در یکی از کلاس های ما تابعی وجود داره که اگر تغییر کنه سیستم دچار مشکل میشه، حالا یکی میخواد بیاد واسه این سیستم یه پلاگین بسازه اینجا اگر اون یه کلاس فرزند از کلاس ما بسازه میتونه تابع ما رو هم override کنه اما دیگه نمیتونه به کلاس اصلی دسترسی داشته باشه چون خیلیا دارن از این سیستم استفاده میکنن. این وظیفه ماست که اینها رو کنترل کنیم.
SOFTAFZAR@ :73:
ممنون از توضیح کاملتون
سوال برنامه نویسی دارید؟
ندونستن عیب نیست، نپرسیدن چرا!