我正在通過身份管理系統(基於SAML2.0)傳遞數組,該身份管理系統向我提供了一組數組中的用戶屬性。使用陣列密鑰中的冒號或如何避免冒號
身份提供商配置此數據的結構,我正在提供此服務(大得多的公司)。改變我收到這個數組的方式不在我的控制之下。
陣列到達我以這種形式(這是我所看到的,如果我print_r
數組):
Array
(
[http://longurl/surname] => Array ([0] => Smith)
[http://longurl/firstname] => Array ([0] => John)
);
正如你所看到的,關鍵這個陣列陣列是一個URL(I」我確定他們有一個很好的理由?!)。但是,如果我試圖用這個陣列的工作,像這樣:
echo 'Hello Mr. '.$SAMLDATA[http://longurl/surname][0];
這是不行的,因爲冒號不是內部變量(或讓我讀)有效的字符。
逃離角色似乎不工作,任何想法我可以在這裏做什麼?非常感謝。
如果您不引用它們,我懷疑您沒有啓用「error_reporting」。否則,你會看到一堆關於未知常數的通知,假定的字符串。 '的error_reporting(E_ALL); ini_set('display_errors',1);'總是在開發時。 –
@MichaelBerkowski啊,好的謝謝你。如果我想用這樣的字符串定義一個數組,將會引用字符串的工作(用於測試目的?) – Gideon
@MichaelBerkowski - 是的,我看到它會,這已經解決了我的問題。謝謝。我承認我不明白$ array [data]和$ array ['data']之間的區別 - 我已經看到堆棧中的人強烈地將引號標記爲不必要的 - 所以我擺脫了這種習慣,但我應該學習何時使用它們。再次感謝 - 如果你寫了一個簡短的答案,我會標記你。 – Gideon