• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで変数名にハイフンを使うには?)

PHPで変数名にハイフンを使うには?

このQ&Aのポイント
  • $yahoo-Japan変数名の書き方について解説します。
  • ハイフンを含む変数名を使用する方法として、${"yahoo-Japan"}という書き方があります。
  • 詳しい解説記事をご紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.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; } } この書き方が一番素直だと思いますけどね。

JoEU6yzi
質問者

お礼

教えていただいたコードを参考に以下のようにすることで期待通りの結果を得ることができました。 ありがとうございました。 $cookie = $_COOKIE["genre"]; $code_genre = array( "yahoo-japan" => "100", "google-japan" => "200" ); foreach ($code_genre as $key => $val) { if ($cookie == $key) { $category = $val; } }

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

わざわざ変数名に使わなくても、普通はこういう処理にしませんかねぇ・・・ $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)
回答No.1

${~~} というのは「可変変数」と言います。変数名を式で指定する方法。 $a = 123; と、${"a"} = 123; は同じです。 ただ、- は変数名に使えないことになっているので、${"yahoo-Japan"} が使えるのは たまたま な気がします。 >ハイフンが含まれた変数名を使う必要があるのですが、 これは方針が間違っています。cookie名をハッシュのキーにすれば済むだけでしょう。

JoEU6yzi
質問者

補足

cookie名をハッシュのキーにするというのがよく分からないのですが、 具体的にはコードを教えていただけたらお願いします。 私の中では、$cookie=str_replace("-","",$cookie);のような処理を追加する方向で考えていたのですが、これとは根本的に違うやり方ですか?

関連するQ&A