2012-02-19 7 views
3

Qアレイキーのコロン:は特別な意味を持ちますか?PHP配列のキーにコロンは特別な意味を持っていますか?

マニュアルから:

配列はarray()言語で作成することが可能です。コンマで区切られた任意の数のキー=>値のペアをパラメータとして取ります。

array( key => value 
    , ... 
    ) 

私は例外オブジェクトに設定されているものを調査している間、私は、エラー状態を作成し、生産のウェブページに続いて

print_r($ex); 

IN-このラインを入れて、ソースを見て、それが生産しますthis-

Exception Object 

(

[message:protected] => DB connection error: SQLSTATE[28000] [1045] Access denied for user 'test'@'localhost' (using password: YES) 

[string:Exception:private] => 

のような出力が:[message:protected]の大幅なコロンですか文字通りキー=>値のペアの鍵であります3210?

答えて

1

例外オブジェクトのプロパティの表現はprint_rです。これらのクラスは、クラスがArrayAccessを実装し、プロパティがpublicでない限り、配列表記法ではアクセスできません。

あなたはこのような配列を持っていた場合は、通常$array['my:key']

と同じように、さらに注意点として、...

$array = array(
    'my:key' => 'my:value' 
); 

...あなたが値にアクセスすることができますが

3

$exは、ではなく、の配列であり、オブジェクトである。オブジェクトは、配列よりも複雑なデータ構造です。あなたが見るものは、このオブジェクトの状態のテキスト表現です。

開発者は、配列に使用されているのと同じ表現を使用することに決めました。コロン区切りを使用して、オブジェクトの属性に関する詳細情報を提供します。

コロンは意味を持ちません。たとえば、次のようなフィールドにはアクセスできません。 $ex['message:protected'].

4

$exは配列ではなくオブジェクトです。これは:protectedと表示され、messageフィールドは、Exceptionクラスのprotectedとマークされていることを示すprint_rが印刷されています。

コロンは配列内で特別な意味を持ちません。

関連する問題