Php 构造函数内的属性值设置

Php 构造函数内的属性值设置,php,oop,properties,Php,Oop,Properties,我正在构造函数中设置一个属性值,如下所示: class ApiController extends Controller { protected $start; protected $limit; protected $string; public function __construct(Request $request) { $this->request = $request; $this->string =

我正在构造函数中设置一个属性值,如下所示:

class ApiController extends Controller
   {
    protected $start;
    protected $limit;
    protected $string;

    public function __construct(Request $request) {
        $this->request = $request;
        $this->string = 'from: '.$this->start. ', size: '.$this->limit;
    }
并尝试从类内的方法访问
$this->string
,如:

    public function test() {
        $this->start = 0;
        $this->limit = 10;
        echo $this->string;
    }
这与以下输出相呼应:

from: , size: 

如何设置
$start
$limit
属性?在构造函数中,初始化$this字符串时,$this->size和$this->limit仍然没有任何值。您必须在初始化$this->string之前设置它们的值,或者在$this->size和$this->limit have value之后初始化$this->string。

首先调用构造函数,其中您的“string”变量(我建议使用其他名称)设置为“from:,size:”

然后在test()方法中,设置start和limit变量,但要回显构造中设置的字符串变量。您的代码没有用新值更新“string”变量

简单的解决方案,移动/复制$this->string=。。。在echo$this->字符串行上方的行

我希望这是有意义的:)

在设置
$this->string之前在构造函数中调用
test()