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

egi*_*gis 14 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
)
Run Code Online (Sandbox Code Playgroud)

我该如何存取权限operation.date,并operation.name和所有其他古怪的命名对象的属性?

rik*_*rik 40

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


pei*_*pei 10

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

echo $object->{"operation.date"}
Run Code Online (Sandbox Code Playgroud)


Ric*_*ing 5

要访问这些属性,您需要用大括号将它们括起来:

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

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

  • +1 但我认为 `operation.date` 需要用引号括起来。 (9认同)
  • 您需要将引号括起来,例如 echo $object->{'operation.date'} (2认同)