アプリ版:「スタンプのみでお礼する」機能のリリースについて

class categoryInfo{
 var $langName = array(
  "app" => array(
   "c" => "C&C++",
   "java" => "Java",
   "vb" => "Visual Basic.NET",(以下略)
  ),
  "markup" =>array(
   "html" => "HTML",
   "css" => "CSS"
  ),
  "web_app" => array(
   "javascript" =>"JavaScript",
   "php"=>"PHP",
   "perl"=>"CGI/Perl"
  ),
 );
 $langName[app] = "アプリケーション開発用言語";
 $langName[markup] = "マークアップ言語";
 $langName[web_app] = "Webアプリ";
}

・・・という風にしているのですが、当然ながら、最後の
$langName[app] = "アプリケーション開発用言語";
などは、既に宣言した変数に値を代入する行為であるため、関数内で行うように、とのエラーメッセージが出力されてしまいます。
 コンストラクタで宣言すれば良い話ではあるのですが、600行ほどあるファイルなので、別の場所で宣言すると面倒になってしまいます。
 又、後々foreachを使うので、連想配列を用いている以上、Array()を使って順番を定義したいのです。

 このArray()の中で、$langName['app']などの一次元部分に値を代入した上、$langName['app']['c']などの二次元の部分にも値を代入する方法はありますでしょうか?

A 回答 (1件)

期待している動作は出来ないと思います。


$langName[app]等は配列か文字列のどちらかを選ぶ必要があります。

  "web_app" => array(
   "title" =>"Webアプリ",
   "javascript" =>"JavaScript",
   "php"=>"PHP",
   "perl"=>"CGI/Perl"
  ),

のように配列の中に入れるか、
var $title = array(
  "app"=>"アプリケーション開発用言語",
  "markup"=>"マークアップ言語",
  "web_app"=>"Webアプリ"
);

のようにして分けるかをするべきじゃないかなと思います。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。
 元々できない動作だったのですね・・・。挙げていただいた方法も含め、代替策を検討しようと思います。

お礼日時:2007/08/07 12:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!