我需要访问我指定为变量的php对象属性。
$ phpObj-> $属性
此$属性可能包含短划线( - ),引号,百分比,甚至空白等字符。 PHP不允许将这些字符用作变量名,导致我无法访问这些属性。
处理这个问题会有什么好处?我打开将$属性首先编码为字母数字,然后将其用作属性变量,但此编码对于特定字符串应该是唯一的。
例如,我想确保$ phpObj-> First-Prop和$ phpObj-> first-prop应该以不同方式识别。
答案 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将采用最后一个属性。
我希望有所帮助,如果你对这项工作有更多了解,更重要的是你想要实现的目标,我会尽力帮助