名称中带有点的 php 对象属性
我有 mysql 表,其中包含“操作.日期”、“操作.名称”等列。 使用 $mysqli->fetch_object()
将该表数据作为对象获取后,我得到了这个(行的 print_r):
stdClass Object
(
[id] => 2
[operation.date] => 2010-12-15
[operation.name] => some_name
)
如何访问 operation.date
和 operation.name
以及所有其他奇怪命名的对象属性?
I have mysql table with collumns like 'operation.date', 'operation.name' and etc.
After fetching that table data as object with $mysqli->fetch_object()
i get this (print_r of row):
stdClass Object
(
[id] => 2
[operation.date] => 2010-12-15
[operation.name] => some_name
)
how do I acces operation.date
and operation.name
and all other weirdly named object properties?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 SQL 查询中指定别名,例如
SELECT column AS nameWithoutDots ...
或使用
$object->{'operation.name'}
访问这些属性
或将对象转换为数组,如下所示:
$obj = (array)$obj; echo $obj['操作.名称']
.Specify aliases in your SQL query like
SELECT column AS nameWithoutDots ...
or access these properties with
$object->{'operation.name'}
or cast the object to array like this:
$obj = (array)$obj; echo $obj['operation.name']
.使用点访问属性的正确方法应该是:
The correct way of accessing properties with a dot should be :
要访问这些属性,您需要用大括号将它们括起来:
echo $object->{"operation.date"} //2010-12-15
如果您以这种方式设置属性,则有问题的符号被删除,允许您通过
echo $object->operationdate //2010-12-15
访问该属性To access these attributes you need to wrap them with curly brackets:
echo $object->{"operation.date"} //2010-12-15
If you set an attribute this way the offending symbol gets removed, allowing you to access the attribute as
echo $object->operationdate //2010-12-15
使用“as”功能更改 sql 以返回有效的属性名称,
例如。选择操作.日期作为日期
Change the sql to return valid property names using the 'as' feature
eg. select operation.date as date
您可以使用
$mysqli->fetch_assoc() 获取 assoc 数组而不是对象
You can get assoc array instead object by using
$mysqli->fetch_assoc()