منظور از پرنت چیه

[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]