PHP对象变量可以以数字开头吗?

时间:2013-08-14 18:12:24

标签: php variables

我正在研究网站的一些旧部分,并发现自己处于以下情况:我必须运行以下代码

<?=($stone->2_way)? 'checked' : ''?>

尝试执行此操作会导致页面在此

时崩溃
<?=($stone->rectangular)? 'checked' : ''?>

没有。我想知道是不是因为变量以数字开头?我可以var_dump石头对象得到

object(Cut_Stone)#54 (6) {
  ["errors"]=>
  NULL
  ["attributes":"ActiveRecord\Model":private]=>
  array(13) {
    ["stone_id"]=>
    int(24)
    ["stone_name"]=>
    string(11) "Test Stone "
    ["active"]=>
    int(1)
    ["rectangular"]=>
    int(1)
    ["2_way"]=>
    int(1)
    ["3_piece_radius"]=>
    int(1)
    ["3_piece_straight"]=>
    int(1)
    ["wedge"]=>
    int(1)
    ["partial_wash"]=>
    int(1)
    ["pier_cap"]=>
    int(1)
    ["pier_cap_w_flat"]=>
    int(1)
    ["radiused_hearth"]=>
    int(1)
    ["total_washed"]=>
    int(1)
  }
  ["__dirty":"ActiveRecord\Model":private]=>
  array(0) {
  }
  ["__readonly":"ActiveRecord\Model":private]=>
  bool(false)
  ["__relationships":"ActiveRecord\Model":private]=>
  array(0) {
  }
  ["__new_record":"ActiveRecord\Model":private]=>
  bool(false)
}

同样重要的是要注意这个对象已经在其他地方使用过,所以我真的不知道这里发生了什么。

1 个答案:

答案 0 :(得分:4)

尝试在属性名称周围使用括号和引号:

<?=($stone->{'2_way'})? 'checked' : ''?>