PHPでキーがあるかの判定にissetはよくない

PHPでキーがあるかというときにissetを使ってたところがあってちょっとはまったのでメモ

issetだと

$arr = ['1' => null, '2' => 'second']
if (isset($arr['1'])) {
  // falseになり
} else {
  // こっちが実行される
}

値がnullとか0とかをfalseにされてしまいます
array_key_existsを使うのがいいです

$arr = ['1' => null, '2' => 'second']
if (array_key_exists($arr['1'])) {
  // こっちが実行される
} else {
  // 
}

keyがあるかは array_key_exists を使いましょう

PHPでOS判定をする

PHPでOS判定しました

if (PHP_OS == 'Linux') {
    // Linuxだったら..
}

として、Linux専用の処理がかけました
Windowsでファイルダウンロードするときは、SJISに変換..とかいう処理で使いました

PHP_OS は php で組み込まれてる定数でどこでも使えます
PHP: 定義済みの定数 – Manual

Cakephpでajaxを使って非同期にすっきりpostする clickイベント版

Cakephpでajaxを使って非同期にすっきりpostする | bgbgbg
ではsubmit buttonを使って、submit時にformをserializeして送ってました

buttonのidをshowbtnを指定して

$('#showbtn').click(function() {                                                               
    event.preventDefault();                                                                       
    event.stopPropagation();                                                                      

    $.ajax({                                                                                      
        type: 'POST',                                                                             
        url: '<?php echo $this->Html->Url(array('action'=>'save'));?>',                   
        data: { data: $('form').serialize() },                                                      
    }).done(function(data) {
        // 後処理                                                                      
    });                                                                                           
});

$(‘form’).serialize()でformの内容がとれます

CakephpのFormHelperでselectタグの空行オプション

Cakephp 2.6でFormHelperを使うとformが楽にかけたりします

    $options = [1,2,3,4];
    $this->Form->select('field', $options));

みたいな感じです
デフォルトで空行が出るので出さなくするには

    $options = [1,2,3,4];
    $attr = ['empty' => false];
    $this->Form->select('field', $options, $attr));

なんてするとなくなるし

    $options = [1,2,3,4];
    $attr = ['empty' => 'this is empty'];
    $this->Form->select('field', $options, $attr));

とすると空のvalue値の表示が指定できます

なんかないかなーってときは、
Class FormHelper | CakePHP
見るのがわかりやすいと思います