在PHP中,您通常可以将对象放在数组中,如下所示:
class Car{}
$car = new Car();
// This runs without error
$array['vehicle'] = $car;
Run Code Online (Sandbox Code Playgroud)
我有一个我自己构建的自定义MVC框架,我需要控制器从模型中获取ORM对象,因此它可以将其传递给视图.所以,我初始化我的用户对象:
$user = new User(2);
Run Code Online (Sandbox Code Playgroud)
现在,我想将该用户对象放入一个$data数组中,以便将其传递给视图:
($ user-> data返回一个ORM对象)
$array['user'] = $user->data;
Run Code Online (Sandbox Code Playgroud)
问题是,执行此操作后,我收到以下错误:
Object of class ORM could not be converted to string
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?有什么我想念的吗?
在此先感谢您的帮助.
class User:$this->data = ORM::for_table("users")->find_one($this->user_id);
Run Code Online (Sandbox Code Playgroud)
(我使用Idiorm作为ORM)
如果您收到如下错误消息:
Object of class ORM could not be converted to string
Run Code Online (Sandbox Code Playgroud)
您应该问的第一个问题是“为什么必须将其转换为字符串”?数组可以很好地接受字符串,所以你可以猜到$data实际上是一个字符串,并且 PHP 认为您想要修改$data[0]。
正如您所看到的,如果您不小心,动态类型语言可能会让您感到困惑。当您的变量表现出可疑行为时,请尝试使用以下命令查看它们中的实际内容var_dump()。
在使用数组之前显式初始化它们也是一个好主意(例如:)$my_array = array();。
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |