php对象属性,名称中带有点

时间:2011-03-18 11:03:29

标签: php oop naming-conventions

我有mysql表,其中包含'operation.date','operation.name'等等。 在使用$mysqli->fetch_object()将该表数据作为对象获取后,我得到了这个(print_r of row):

stdClass Object
(
[id] => 2
[operation.date] => 2010-12-15
[operation.name] => some_name
)

如何访问operation.dateoperation.name以及所有其他奇怪命名的对象属性?

5 个答案:

答案 0 :(得分:36)

在SQL查询中指定别名,如SELECT column AS nameWithoutDots ...
或使用$object->{'operation.name'}访问这些属性 或者将对象强制转换为数组:$obj = (array)$obj; echo $obj['operation.name']

答案 1 :(得分:9)

使用点访问属性的正确方法应该是:

echo $object->{"operation.date"}

答案 2 :(得分:3)

要访问这些属性,您需要用大括号包装它们:

echo $object->{"operation.date"} //2010-12-15

如果您以这种方式设置属性,则会删除有问题的符号,从而允许您以echo $object->operationdate //2010-12-15

的形式访问该属性

答案 3 :(得分:2)

使用“as”功能

更改sql以返回有效的属性名称

例如。选择operation.date作为日期

答案 4 :(得分:0)

您可以使用$mysqli->fetch_assoc()

获取关联数组而不是对象