- ベストアンサー
PHPで変数名にハイフンを使うには?
- $yahoo-Japan変数名の書き方について解説します。
- ハイフンを含む変数名を使用する方法として、${"yahoo-Japan"}という書き方があります。
- 詳しい解説記事をご紹介します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です 一番多用するパターンを書き忘れてた(汗 $cookie = $_COOKIE["genre"]; $code_genre = array( array("yahoo-japan" => "100"), array("google-japan" => "200") ); foreach ($code_genre as $key=>$val) { if (in_array($key, $cookie)) { $category = $val; } } この書き方が一番素直だと思いますけどね。
その他の回答 (2)
- shimix
- ベストアンサー率54% (865/1590)
わざわざ変数名に使わなくても、普通はこういう処理にしませんかねぇ・・・ $cookie = $_COOKIE["genre"]; $code_genre = array("yahoo-japan", "google-japan"); $code_value = array("100", "200"); // $code_genreと同じ並びで定義する foreach ($code_genre as $key=>$val) { if (in_array($val, $cookie)) { $category = $code_value[$key]; } } もっと多く使うパターンはこうでしょうか $cookie = $_COOKIE["genre"]; $code_genre = array( // keyとvalで各々定義する array('key=>"yahoo-japan", 'val'=>"100"), array('key'=>"google-japan", 'val'=>"200") ); foreach ($code_genre as $arr) { if (in_array($arr['key'], $cookie)) { $category = $arr['val']; } }
- notnot
- ベストアンサー率47% (4900/10358)
${~~} というのは「可変変数」と言います。変数名を式で指定する方法。 $a = 123; と、${"a"} = 123; は同じです。 ただ、- は変数名に使えないことになっているので、${"yahoo-Japan"} が使えるのは たまたま な気がします。 >ハイフンが含まれた変数名を使う必要があるのですが、 これは方針が間違っています。cookie名をハッシュのキーにすれば済むだけでしょう。
補足
cookie名をハッシュのキーにするというのがよく分からないのですが、 具体的にはコードを教えていただけたらお願いします。 私の中では、$cookie=str_replace("-","",$cookie);のような処理を追加する方向で考えていたのですが、これとは根本的に違うやり方ですか?
お礼
教えていただいたコードを参考に以下のようにすることで期待通りの結果を得ることができました。 ありがとうございました。 $cookie = $_COOKIE["genre"]; $code_genre = array( "yahoo-japan" => "100", "google-japan" => "200" ); foreach ($code_genre as $key => $val) { if ($cookie == $key) { $category = $val; } }