شبیه ساری متد __constructor در php4

بلاگ
Programming
شبیه ساری متد __constructor در php4 از اونجایی که شانس ندارم هنوز چند ماه از گرفتن یک host برای php5 نگذاشته بود که همه چیز کن فیکون شد! و خلاصه سرور از php5 به php4 downgrade کرد و من موندم با کلی کلاس همساز با php5. کلا مجبور شدم downgrade کنم به غیر از یک استثنا و اون هم در رابطه با متد __constructor بود. که امکان شبیه سازیش در php4 هست. حتما می دانید که در php4 بر خلاف php5 نام متد سازنده باید با نام کلاس یکی باشد (خیلی عیجبه ، یعنی اگه نام کلاس تغییر کنه باید نام آن را هم تغییر داد) در نتیجه php4 با __constructor مثل یک تابع معمولی بخورد می کند. برای حل این مشکل ما نیاز به یک base class داریم تا تمام کلاس ها از آن ارث ببرند! و زمانی که وقت کوچ به php5 شد تنها کاری که باید بکونیم قطع ارث بری از کلاس مذکور است. این تنها یک نمونه ساده است. در php توابع زیادی وجود دارد که کارهای عجیبی که نویسندگان آنها حتی تصورش را هم نمی توانند بکنند می توان با آن ها انجام داد.
class CBaseClass
{
	//there is no __construct function in php4 or down , so this function can simulate it.
	function CBaseClass()
	{
		$args = func_get_args();
		call_user_func_array(array(&$this, "__construct"), $args);		
	}
}

//--(Begin)-> Example
class CFoo extends CBaseClass
{
	function __construct($str)
	{
		echo $str;
	}
}

$foo=new CFoo('Hello');
//--(End)-> Example
امتیاز شما: خالی میانگین: 1 (96 رای)