phpで配列が存在するかのチェック

配列が存在するか調べるときに

if (isset($var['p'])) {
  // 存在するときの処理
}

としますが

$var['p'] = null;
var_dump(isset($var['p']));
// false

と null が入っていると false になってしまいます

配列のキーが存在するかをみて

if (array_key_exists('p', $var)) {
  // キー存在するときの処理
}

としてあげたら意図した処理になります

Cakephpのテスト時にSessionの値が取れない

Cakephp 2.5.3でコントローラーのテストのとき

$this->testAction('/Sample/save', ['return' => 'vars']);
$flash = CakeSession::read('Message.flash');
$this->assertEquals('保存しました', $flash);

とすると CakeSession::read(‘Message.flash’) がとれませんでした

$this->testAction('/Sample/save');
$flash = CakeSession::read('Message.flash');
$this->assertEquals('保存しました', $flash);

として flash をとってやって

$this->vars
でパラメータは取ればとりあえず解決

詳しく理解しないとですが、ここまでで

phpで配列のキーの先頭を取得する

phpで配列のキーの先頭をとってみました

まず関数を調べる

PHP: current – Manual

配列内の現在の要素を返す

PHP: reset – Manual

配列の内部ポインタを先頭の要素にセットする
返り値に先頭の値が返ってきます

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
var_dump(current($list)); 
// string(1) "a" 
var_dump(reset($list));                                                                               
// string(1) "a"

といった感じで、配列を宣言しただけだと、同じ結果が返ります

PHP: array_keys – Manual

配列のキーすべて、あるいはその一部を返す

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
var_dump(array_keys($list));
/*
array(3) {
  [0] =>
  string(1) "A" 
  [1] =>
  string(1) "B" 
  [2] =>
  string(1) "C" 
}
*/

とキーが配列で返ります

組み合わせて

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
$keys = array_keys($list);                                                                             
var_dump(reset($keys)); 
// string(1) "A" 

これがいいかなと思っています

gitignoreへ指定しているファイルをgit管理へ含める

git管理していて.gitignoreに指定すると、git管理下から外せますがそれでも1回だけ管理下へ入れたいときには

$ git add -f (入れたいファイル)

とすれば、管理下へ入ります
database設定ファイルのテンプレートをあげた時に使いました