2011-07-11 4 views
19

私は前に出会ったことがない何かに出くわします。 私のテーブルに値があります"Device Vendor"と私はオブジェクトのデータを返しています。mySql PHP - キーのスペースを持つオブジェクトの値を返します

通常、私は$ob->var_nameを呼び出しますが、明らかに$ob->Device Vendorは動作しません。

どのように値を返すのですか?

よろしく

+0

- > 'デバイスのベンダー –

+0

わからないが、あなたは、 '$ OBJを試してみました - > 'デバイスベンダー'? – ianbarker

答えて

40

あなたは構文はこれです、次の構文

$ob->{'Device Vendor'} 
9

を使用します。私はこれを明示的に参照を見つけようと苦労してい

$ob->{'Device Vendor'} 

PHPマニュアル。私はそれが推論される必要があることを恐れ、あなたはすでに答えを知っている場合にのみ行うことができます。 Classes and Objects-> Propertiesで、彼らは言う:

クラスメンバー変数は "プロパティ"と呼ばれます。 [...]それらは、public、protected、privateのいずれかのキーワードを使用して と定義され、通常の変数宣言によって が続きます。

今適用されるルールはVariable variablesです:

可変変数を配列で使用するためには、 曖昧さの問題を解決しなければなりません。つまり、$$を1と書くと、パーサーは$ 1を変数として使用するのか、$$を 変数として使用し、その変数の1インデックスを使用するのかを知るには が必要です。このあいまいさを解決するための構文 は、最初のケースでは$ {$ a 1}、2番目のケースでは $ {$ a} 1です。

私たちは基本的に変数を乱用しているので、スペースを使用できます。

+0

非常に興味深いの感謝+1 –

0

すべて小文字でプロパティ名とプロパティ名にアンダースコアとスペースを交換してください:uはOB $を試してみました

if $property = 'Device Vendor'; 

    use $property = 'device_vendor'; 
    $ob->{$property}; 
関連する問題