人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

素朴な質問ですが、phpで配列のキーに日本語は使えるのでしょうか?
つまり、

$arr = array("日本語のキー" => "格納文字列");

ということを行っても問題はないか、ということです。

ちょっと試したところ問題はなかったのですが、php.netの配列のマニュアルには整数または文字列としか書かれていなくて、確認できるソースがほかに見つからなかったので。
また日本語が使える場合、注意しなければいけないことがありましたら教えてください。

なお、回答には正確さを求めているので、「多分問題ない」など不確実なものはNGとさせて頂きます。

●質問者: xxmasaxx
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.NET ng PHP ソース マニュアル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tezcello
●27ポイント

PHPのマニュアルに

変数名は、PHPの他のラベルと同じルールに従います。 有効な変数名は文字またはアンダースコアから始まり、任意の数の文字、 数字、アンダースコアが続きます。

...

文字とはa-z、A-Z、127から255まで (0x7f-0xff)のアスキー文字を意味します

とあるので、変数名(=ラベル)と認められる範囲の文字は日本語だろうが何だろうが使えるのでは?

Shift-JIS は第2バイトに使えない文字

@ [\]^

を含まない範囲で使用するか、元々その類いを含まないUTF-8, EUC を使うなどの配慮は必要でしょう。

◎質問者からの返答

なるほど、変数名からは思いつきませんでした。

参考になりました、有り難うございます。


2 ● ito-yu
●27ポイント

http://www.php.net/manual/ja/language.types.array.php

配列の添字として定数を使用可能であることがわかります。

よって、定数として定義可能な値はすべて配列の添字として利用可能であると導けます。マルチバイト文字も例外ではありません。

http://www.php.net/manual/ja/function.define.php

id:tezcelloさんの書かれているSJISに関する問題は根深いですが、そもそもSJISでのコーディングは推奨されておりません。

EUC-JPかUTF-8でコーディングしましょう。

◎質問者からの返答

回答有り難うございます。

SJIS以外ですね、なるほど。


3 ● mercury2005
●26ポイント

1. 配列のキーに日本語でも構いません。

2. キーに変数や計算式等も使用可能です。

$title_name = "名前";

$array = array("{$title_name}" => "山田太郎");


注意:

日本語(マルチバイト)でスクリプトを書く場合は:

SHIFT_JISは避けたほうがいいと思います。文字コードをEUC-JP か UTF-8 にしたほうが無難です。

◎質問者からの返答

回答有り難うございました。

参考になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ