您好我怎样才能创建一个类对象,并且可以这样做:
<?php
$someClass = new SomeClass;
$sum = $someClass->addValues(1,22)->sumValues();
echo $sum; // to give me 23
?>
很抱歉!这就是我的意思,我刚才有了这个想法,所以 - 对不起,邮件。
<?php
class SomeClass {
private $values = array();
public function addValue(){
$this->values = func_get_args();
return $this;
}
public function getSum(){
$sum = array_sum($this->values);
return $sum;
}
}
$SomeClass = new SomeClass;
$result = $SomeClass->addValue(1,22,44,51)->getSum();
echo $result;
?>
对于所有回答的人 - 抱歉,这只是一个例子,所以我问如何做到这一点,以帮助我不与我争论这是否是一种矫枉过正。我需要这样做的方法。不像我会使用相同的代码。
答案 0 :(得分:1)
您找到的术语是“方法链”,请参阅wikipedia
上的此链接基本上你需要编写一个返回$this
<?php
class Foo{
protected $message;
function a($foo){
$this->message .= $foo;
return $this;
}
function b($foo){
$this->message .= $foo;
return $this;
}
function print_message(){
echo $this->message;
}
}
$foo = new Foo()
$foo->a("Hello")->b("World");
$foo->print_message();
//output: 'HelloWorld'
?>
答案 1 :(得分:0)
如果你只想总结一个数字列表,那么很容易就这样做:
$sum = array_sum(array(1, 22));
如果您正在尝试学习如何使用类/对象,那么您可以像这样实现:
class SomeClass {
protected $values = array();
public function addValues() {
$this->values = array_merge($this->values, func_get_args());
return $this;
}
public function sum() {
return array_sum($this->values);
}
}
$someClass = new SomeClass;
echo $someClass->addValues(1, 22)->sum(); // 23