後輩は何でも配列に入れたがる
確かにPHPの配列はMAPだし特別な宣言は不要で使いやすいが
意味の分からない配列利用はやめていただきたい
なぜ配列を避けるべきなのか
- 可読性が低い(わざわざなぜ配列にしたのかを考えるて読むので無意味に配列だと勘繰りする
- 書きにくい(いちいち[”]を書くのがだるい(keyに空文字が許されないのでコピペミスでスペース文字が入るったりするとバグる
- ヒントがでない(統合開発環境ならちゃんと宣言するとヒントがでるが、配列に入れるとヒントを出せないのでミスの温床になる
- debugしにくい(key名を間違えた場合存在しないkeyを指定したと出るがどこで間違ったかピンと来ない。
変数を定義していれば未定義の変数へのアクセスとでて定義忘れとすぐ分かる
以下のコードは後輩が生み出したソースを適当に書きだしたもの
class Acme{
$this->repositories=array();//なぜArrayを作るんだ?
function __construct() {
//使うDBの数だけメンバー変数を定義するのがそんなに面倒なのか?
// $this->repositoriesComment = new comment();でよくね?
$this->repositories['member'] = new memberdb();
$this->repositories['blog'] = new blog();
$this->repositories['comment'] = new comment();
}
function main($membrtcd){
//結局DBのNameベースで読んでるなら
//$this->create($this->repositoriesComment,$membrtcd);
//でよくね?
$this->create('member',$membrtcd);
$this->create('blog',$membrtcd);
$this->create('comment',$membrtcd);
}
function create($dbname, $membercd){
//$dbname->insert($membercd);でも同じでしょ?
$this->repositories[$dbname]->insert($membercd);
}
}