PDA

View Full Version : حرفه ای: یک ایده در ارث بری



farshad_persia
شنبه 14 خرداد 1390, 00:24 صبح
با سلام من یک سوال داشتم
فرض کنیم یک کلاس داریم





class test
{
var $title = NULL;
function setTitle($title)
{
$this->title = $title;
}
function getInstance()
{
$instance = new title();
return $instance;
}
}



حالا یه کلاس داریم که از کلاس test ارث بری می کنه





class test2 extends test
{
function __construct()
{
parent::__construct();
}
}


من میخوام وقتی از کلاس test آبجکت میگیرم و متد setTitle رو فراخونی میکنم مقداری که به $title ست میکنه در یک آبجکت مجزا که از کلاسی که ازش ارث برده میگیرم مقدار $title ست شده باشه تا بتونم در کلاس دوم ازش استفاده کنم
مثلا :





$test = new test();
$test2 = new test2();
$test->setTitle('something');
echo $test2->title;


که در اینجا جواب NULL هست و این رو هم بگم که نمیخوام از طریق آبجکت دومی که ساختم متد رو فراخونی کنم چون از نظر امنیتی به مشکل میخورم
و این رو هم بگم که من نمونه این رو در یک سیستم دیدم که به سادگی کار میکرد:اشتباه:

ممنون میشم اگه کسی کمک کنه تا ببینیم به جواب میرسیم

exlord
شنبه 14 خرداد 1390, 14:52 عصر
توصیه میکنم اول مفاهیم OOP رو بهتر یاد بگیرین ... بعد چیزی که شما میخواین فقط اینجوری میشه که البته چیزه جالبی نیست ... اگه دقیقتر توضیح بدین که دقیقا چی کاری میخواین انجام بدین شابد روش بهتری باشه ...

class test
{
public static $title = NULL;

public function __construct(){}

function setTitle($title)
{
$this->title = $title;
}

function getInstance()
{
$instance = new title();
return $instance;
}
}


class test2 extends test
{
function __construct()
{
parent::__construct();
}
}

test::$title = 'something';
echo 'title is : '.test2::$title;