T

dieとexit

exit関数(dieはこのエイリアス)の引数に文字列を渡すと、メッセージとして文字列を出力してスクリプトが終了するのだが。

PHP4.2以降ではintegerを渡すと終了時のステータスコードになる。0は正常終了なので、適時利用すればいい。利用できるのは254までの整数で、255は予約されている。

255を越える値を渡すと無視される。

で、何が言いたいのかというと、

public static function response($str){
    header('Expires: ' . gmdate('D, j M Y H:i:s', 1));
    print("\xef\xbb\xbf");
    die($str);
}

うっかりこんなコードを書くと、$strに整数しか入っていない場合は何も出力されない。Ajaxでサーバ側からのレスポンスを記述するときによくやってしまいがち。

public static function response($str){
    header('Expires: ' . gmdate('D, j M Y H:i:s', 1));
    print("\xef\xbb\xbf");
    print($str);
    exit;
}

これが正しい。って、自分がやってしまったわけですが。

Posted by on 10月 22, 2007 in Javascript, PHP

コメントを残す