我在尝试显示一些变量时收到错误,如下所示:
echo "id is $url->model->id";
问题似乎是 echo 只喜欢以这种方式显示的简单变量(如 $id 或 $obj->id)。
class url {
public function __construct($url_path) {
$this->model = new url_model($url_path);
}
}
class url_model {
public function __construct($url_path) {
$this->id = 1;
}
}
进而
$url = new url();
echo "id is $url->model->id"; // does not work
$t = $url->model->id;
echo "id is $t"; //works
$t = $url->model;
echo "id is $t->id"; //works
echo "id is {$url->model->id}"; //works. This is the same syntax used to display array elements in php manual.
//php manual example for arrays
echo "this is {$baz['value']}";
我不知道它为什么起作用,我只是猜到了语法。
在 php 手册中它没有说明如何使用echo "..."
对象。还有一些奇怪的行为:在简单的变量上回显,有效;对对象的简单属性的回应;在另一个对象内部的对象的简单属性上回显不起作用。
这echo "id is {$url->model->id}";
是正确的方法吗?有没有更简单的方法?