Php 对对象调用多个方法?
我尝试在一个对象上调用多个函数。但是我想我没有通过语法。请你纠正我好吗Php 对对象调用多个方法?,php,Php,我尝试在一个对象上调用多个函数。但是我想我没有通过语法。请你纠正我好吗 $objMetaDaten->setStrTitle('test') ->setStrBeschreibung('test') ->setStrUeberschrift('test') ->setStrCanonical('test') ->setStrRobots(MetaDaten::INDEX); 我认为你看起来像这
$objMetaDaten->setStrTitle('test')
->setStrBeschreibung('test')
->setStrUeberschrift('test')
->setStrCanonical('test')
->setStrRobots(MetaDaten::INDEX);
我认为你看起来像这样,这是一个非常基本的方法
class Test{
function test(){
return 'Hi!';
}
}
class Test2{
function test_2(){
return new Test();
}
}
class Test3{
function test_3(){
return new Test2();
}
}
$obj = new Test3();
echo $obj->test_3()->test_2()->test();
或者,你可以在一节课上这样做-
class Test{
private $num;
function test(){
return 'Hi! your number is: '.$this->num;
}
function test_2($mul){
$this->num *= $mul;
return $this;
}
function test_3($add){
$this->num = $add;
return $this;
}
}
$obj = new Test();
echo $obj->test_3(50)->test_2(2)->test();
您需要的是一种称为fluent setters的东西,它将在调用对象上的setter后返回对象,而不是像下面这样的常规void setter
Class A{
private $name;
private $id;
public function setName($name) {
$this–>name = $name;
return $this;
}
public function getName() {
return $this–>name;
}
public function setId($id) {
$this–>id = $id;
return $this;
}
public function getId() {
return $this–>id;
}
}
那么你可以说
$test = new A();
$test->setId(1)->setName('Fredrick');
要使其工作,每个方法都必须返回
$this
。看,method chaining.show您的错误消息如果setStrTitle('test')
返回下一个类,我的意思是(setStrBeschreibung('test'))
的对象,那么这将发生。