1

我有一个存储在 var 中的 PHP 对象,$category它具有以下属性(用 转储print_r()):

jstandCategory Object
(
    [category_id] => 1
    [category_image] => 
    [category_parent_id] => 0
    [category_publish] => 1
    [category_ordertype] => 1
    [category_template] => default
    [category_ordering] => 1
    [category_add_date] => 2013-03-18 22:10:45
    [cars_page] => 6
    [cars_row] => 1
    [name_en-GB] => Used Cars
    [alias_en-GB] => used-cars
    [short_description_en-GB] => 
    [description_en-GB] => <table>... some html code ...</table>
)

但是,当我尝试使用i get转储name_en-GB属性时。我究竟做错了什么?上面的属性被转储得很好。print_r($category->name_en-GB);0name_en-GB

4

3 回答 3

4

PHP将其理解为$category->name_en- GB(数学运算),一种NULL - NULL情况,为0。

最好不要在属性名称中使用连字符。如果您愿意,请使用下划线或驼峰式。

于 2013-03-21T21:10:41.753 回答
2
- is an operator don't use it in variable names
于 2013-03-21T21:09:40.757 回答
2

您正在使用带有无效字符的属性名称,您需要将名称用大括号括起来才能被识别

print_r($category->{'name_en-GB'}); 

如果您更改命名策略会更好

于 2013-03-21T21:11:11.143 回答