普段あなたが良く使う(あったらいいと思う)
関数1文字の自作関数を教えてください。
例えば、以下のようなものです。
// 配列を生成
function a(){
return func_get_args();
}
// dump出力
function d(){
return var_dump(func_get_args());
}
GETやPOSTのパラメータが送信されていればその値を変数に格納し、
送信されていなければデフォルト値を変数に格納する、
というコードを書くことがあります。
// if文で $foo = 0; if(isset($_GET['foo'])){ $foo = $_GET['foo']; } // 三項演算子で $hoge = (isset($_POST['hoge']))?$_POST['hoge']:'';
これを短くしたくて、次のような1文字関数を用意したりします。
function P($name, $default = "") { $val = $default; if (isset($_GET[$name])){ $val = $_GET[$name];} if (isset($_POST[$name])){ $val = $_POST[$name];} return $val; } $hoge = P('hoge', 0); $foo = P('foo', '');
よく使うのは以下の3つです。
<?php // htmlspecialchars する function h($v) { return htmlspecialchars($v, ENT_QUOTES); } // 参考→ http://d.hatena.ne.jp/amachang/20090803/1249292858 function expr($v) { return $a; } // 参考→ http://d.hatena.ne.jp/amachang/20090803/1249292858 function idx($array, $i) { return $array[$i]; } ?>
function h() は、よく使いそうですね。
>|php|
// メッセージを出力し、現在のスクリプトを終了する
function e($status) {
exit($status);
}
||<
function e() は、error 関数を連想させてデバックにはいいですね。
「e();」というのを使ってます。
「env」の略のつもりで、$_ENVや$_SERVERなんかの値を短く、かつ小文字でも取得できるようにするものです。
<?php function e($key){ $key=strtoupper($key); if(isset($_ENV[$key])){ return $_ENV[$key]; }else if(isset($_SERVER[$key])){ return $_SERVER[$key]; }else if($GLOBALS[$key]){ return $GLOBALS[$key]; } } ?>
実際にはもっといろいろ処理を詰め込んでます。
(クエリのパース結果やSSL内かどうかなど)
また、第二引数にtrueかfalseのフラグをつけて、結果の返却をreturnかechoで選べるようにしてもいいかなとも思います。
なるほど、$_SERVERもよく使うのに長いですからね。
1文字関数化するのはいいですね。
apache_getenv で取得する値なんかも追加してもいいかもしれませんね。
ありがとうございます。
GETやPOSTのパラメータが送信されていればその値を変数に格納し、
送信されていなければデフォルト値を変数に格納する、
というコードを書くことがあります。
// if文で $foo = 0; if(isset($_GET['foo'])){ $foo = $_GET['foo']; } // 三項演算子で $hoge = (isset($_POST['hoge']))?$_POST['hoge']:'';
これを短くしたくて、次のような1文字関数を用意したりします。
function P($name, $default = "") { $val = $default; if (isset($_GET[$name])){ $val = $_GET[$name];} if (isset($_POST[$name])){ $val = $_POST[$name];} return $val; } $hoge = P('hoge', 0); $foo = P('foo', '');
変数の初期化はよくすることなので、これも便利ですね。
変数の初期化はよくすることなので、これも便利ですね。