![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
外部ファイル(複数のページからインクルードされる)に、
配列を定義するのって普通なのでしょうか。
例えば、曜日関係の処理をする場合、
$days = Array(0=>'日', 1=>'月', 2=>'火', 3=>'水', 4=>'木', 5=>'金', 6=>'土');
と言う配列を用意すれば、曜日の一覧を表示することも、
番号に対応する曜日名を取得することもできます。
でも、定数でもないのに、別のファイルで定義された変数を使うのって何だか違和感があります・・・。
(配列が定数として使えれば一番良いんですが)
そこで、「曜日の配列を返す関数」を用意すると言う方法(下記参照)も考えました。
function get_days(){
return Array(0=>'日', 1=>'月', 2=>'火', 3=>'水', 4=>'木', 5=>'金', 6=>'土');
}
// 特定の曜日名を取得する場合
$days = get_days();
print $days[$number];
結局やっていることは同じなのですが、関数を呼び出す手間がかかってしまうのもどうなんだろう・・・と思ってしまいます。
みなさんはこのような場合、どういった方法を使っていますか?
また、この2つならどちらの方が分かりやすいですか?
No.3ベストアンサー
- 回答日時:
通常includeする場合は競合をさけるためにclass化しておくものじゃないですか?
であれば配列は関数から受け取るのが妥当でしょう・・。
include "common.php";
$common=new common;
$days=$common->get_days();
//common.php
class common{
function get_days(){
return Array(0=>'日', 1=>'月', 2=>'火', 3=>'水', 4=>'木', 5=>'金', 6=>'土');
}
}
みたいなかんじ・・・
回答ありがとうございます。
配列は定数にできないので、共通の変数にすると好きなように変更できてしまう点が気になっていたのですが、
(同じ名前で違う配列を作ってしまっても分からないですし…)
classの中でprivateな配列を作っておき、それを使って処理を行えば、
こういった心配もなくなりますね。
class化は考えていなかったので、良い方法だと思いました。
No.2
- 回答日時:
>> 別のファイルで定義された変数を使うのって何だか違和感があります・・・。
何に“違和感”を感じるかは個人差が有りますので 御自分の納得する方法で実現するしかありませんが、
コンフィグファイルをインクルードして利用する著名なソフトや汎用ライブラリーでも
コンフィグファイルの中に配列で設定値などが定義されているものも多々見受けられるので
私は一般的な手法と考えています。
例 phpmyadmin など
どうしても納得できない場合は、配列と類似の記述で利用できる形式で
関数を定義しておくのも手ですね。
例
<?php
function weekday($n){return mb_substr("日月火水木金土",$n%7,1);}
print weekday(2);
?>
回答ありがとうございます。
他の人のソースを見てみると言うのは考えたのですが、phpmyadminは全く候補にありませんでした。
早速見て参考にしたいと思います。
No.1
- 回答日時:
どちらでも良いんじゃない?
規模が大きい場合は共通部分は別にしておいてライブラリ化のようにしてincludeなりで使うのはむしろ普通のやり方だと思う
http://jp.php.net/manual/ja/function.require-onc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 郵便・宅配 書類の提出についてです。 先日、内定を頂き、土曜の夕方に内定通知書が自宅に届きました。 その中には内 4 2023/06/08 00:27
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Java Java、配列の問題を教えて欲しいです。 ・日、月、火、水、木、金、土 ・各曜日の英語 を2次元配列 2 2023/07/10 19:14
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- 統計学 【統計 回帰分析 ダミー変数について】回帰分析に曜日みたいなダミー変数を設定する場合って、ダミー変数 1 2023/01/14 17:00
- その他(恋愛相談) 日程打診してきたのに、その日に自分の予定入れる人 6 2022/06/07 00:40
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
file_existsでファイル名の部分...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
漢字のソートについて
-
SimpleXML関数で取得したXML要...
-
配列をループでたくさん宣言し...
-
URLのサブドメインとドメイン部...
-
【Smarty】foreach関数やsectio...
-
PHP掲示板で新着順に表示させた...
-
PHPの配列の中の要素の日付でソ...
-
String だと「 ByRef引数の型が...
-
PHPでテキストファイルの一部を...
-
Cookieの発行について
-
PHPで配列をPOSTデータで送った...
-
$_POSTを一括してサニタイズし...
-
PHP 多次元配列変数のデータ受...
-
stdClass Objectを連想配列のよ...
-
ヒアドキュメントの中のfor文
-
mallocで char *型の配列を確...
-
Perlで重複行を削除したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
postgresql関数をつかったレコ...
-
CSVデータのn番目だけの値を取...
-
PHPのカッコ[ ]の使い方について
-
配列一致(要素順番は違うが内容...
-
漢字のソートについて
-
PHPにてクラスを配列にすること...
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
配列を回すとき、最後の要素だ...
-
連想配列のprint_rやvar_dump出...
-
PHP多次元配列で重複チェック
-
PHPのusort関数について
-
mb_ereg_replaceについて
-
$_POSTを一括してサニタイズし...
おすすめ情報