在PHP 中存取具有非法名稱的屬性
在PHP 中,存取具有非法名稱的物件屬性,例如包含連字符( -) 的物件屬性,可能具有挑戰性。考慮以下場景:
問題:
您已從 API 呼叫中檢索到一個對象,儘管其 var_dump顯示存在「todo-items」屬性,您無法直接使用它來存取它$object->todo-items.
解決方案:
有幾種方法可以存取此類屬性:
屬性名稱封裝:
PHP允許您可以將屬性名稱封裝在大括號中以直接存取它們。這甚至適用於非法名稱:
$object->{'todo-items'}
變數賦值:
將屬性名稱指派給變量並使用變數存取它方格內括號:
$todolist = 'todo-items'; $object->$todolist
陣列轉換:
使用類似於Zend_Config 所採用的技術將物件轉換為陣列:
public function toArray() { $array = array(); foreach ($this->_data as $key => $value) { if ($value instanceof StdClass) { $array[$key] = $value->toArray(); } else { $array[$key] = $value; } } return $array; }
以上是如何使用「todo-items」等非法名稱存取 PHP 物件屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!