当属性名称具有不允许的字符时访问PHP对象属性

时间:2011-11-18 17:50:20

标签: php oop

我需要访问我指定为变量的php对象属性。

$ phpObj-> $属性

此$属性可能包含短划线( - ),引号,百分比,甚至空白等字符。 PHP不允许将这些字符用作变量名,导致我无法访问这些属性。

处理这个问题会有什么好处?我打开将$属性首先编码为字母数字,然后将其用作属性变量,但此编码对于特定字符串应该是唯一的。

例如,我想确保$ phpObj-> First-Prop和$ phpObj-> first-prop应该以不同方式识别。

2 个答案:

答案 0 :(得分:5)

$propertyName = 'property-name';

$phpObj->{$propertyName} = ...
$phpObj->{"property-name"} = ...

只有这可能是个问题:

$phpObj->First-Prop and $phpObj->first-prop 
php中的

变量/函数/方法/属性定义不区分大小写...

答案 1 :(得分:0)

不确定你想在这里实现什么,但是。 但 你最好用一个可用的字符列入白名单,a-zA-Z0-9我猜测可能_。然后你可以分配属性,知道php中允许所有字母。

我不明白为什么属性需要唯一的属性名称,肯定具有唯一值的键的属性可以实现类似的东西,可以附加到所有内容。

php不具备个案意义所以$ phpObj-> First-Prop和$ phpObj-> First-Prop将采用最后一个属性。

我希望有所帮助,如果你对这项工作有更多了解,更重要的是你想要实现的目标,我会尽力帮助