[rtl]
سلام. منظور از پرنت و دادن اسم خود تابع داخل تابع چیه؟
[/rtl]
protected function afterFind()
{
parent::afterFind();
$this->_oldTags=$this->tags;
}
[rtl]
سلام. منظور از پرنت و دادن اسم خود تابع داخل تابع چیه؟
[/rtl]
protected function afterFind()
{
parent::afterFind();
$this->_oldTags=$this->tags;
}
[font="Tahoma"][rtl]سلام،
منظور کلاس والدی است که از اون extends کردید.
در واقع در اینجا parent::afterFind، به این تابعی که شما گذاشتید اشاره ندارد، بلکه منظور تابعی به همین نام اما در کلاس والد آن می باشد.
مثال:
[/rtl]
<?php
class A {
function example() {
echo "I am A::example() and provide basic functionality.<br />\n";
}
}
class B extends A {
function example() {
echo "I am B::example() and provide additional functionality.<br />\n";
parent::example();
}
}
$b = new B;
// This will call B::example(), which will in turn call A::example().
$b->example();
?>
[/font]
[font="Tahoma"][font="Tahoma"][rtl][/font]توضیحات بیشتر:
http://php.net/manua...word.parent.php
اما در YII ، برای توسعه کلاس ها از parent زیاد استفاده شده. یعنی مثلاً شما میخواهید یک کلاس موجود رو طوری توسعه بدید که یکی از متدهای اون سفارشی بشن و علاوه بر کارهایی که انجام میدادند یک کار اضافه هم انجام بدن. در همچین مواقعی شما اول دستورات اصلی اون تابع رو با parent صدا میزنید و سپس دستورات جدید مد نظر رو اضافه میکنید که مثالش رو خودتون هم گذاشتید.
ممنون
[/rtl][/font]