خوب فکر میکنم منظورت رو گرفتم
خیلی سادس فقط کافیه یه شی رو return کنی چه تابع باشه چه متد بغیر از متد __construct
مثال
PHP:
class test1{
public function __construct() {}
public function returnTest2(){
return new test2();
}
}
class test2 {
private $pro = "class test2::pro";
public function __construct() {}
public function printPro() {
print $this->pro;
}
public function returnTest3(){
return new test3;
}
}
class test3 {
private $pro = "class test3::pro";
public function __construct() {}
public function printPro() {
print $this->pro;
}
}
میتونی یه تابع بنویسی که شی برگردونه
PHP:
function returnTest1() {
$obj = new test1();
return $obj;
}
$object = returnTest1();
$object->returnTest2()->printPro(); // print class test2::pro
میتونی از خود شی هم استفاده کنی
PHP:
$classTest1 = new test1;
$classTest1->returnTest2()->returnTest3()->printPro(); // print class test3::pro
فقط به طور صریح نمی تونی این کار رو بکنی
PHP:
new test1()->returnTest2()->returnTest3()->printPro(); // Error
چون متد __construct هیچ نوع از دادهای رو نمی تونه برگردونه اول باید شی رو تو یه متغیر قرار بدی بعد متدها رو فراخوانی کنی
در اخر من برای خلاصه نویسی هیچ کدی رو تو متد __construct نذاشتم شما میتونی هر کدی رو بزاری این رو گفتم که اشتباه نشه