タイトル通りの記事です。随時更新。ゆるゆるtipsを貯めていって、後々自分にとって役に立ったらいいなぁというモチベで書いています。
「ある文字列の中に、特定の文字列が存在するかどうか」だけを判断する際は、strstr()やstrpos()ではなくstr_contains()を使う[※version > 8]
if ($str_contains($haystack, $needle)) {
// 文字列が存在したときの処理
}
ある文字列の中に、特定の文字列が存在するかどうかだけを判断する際は、strstr()よりstrpos()を使う[※version < 8]
やむを得ずphp version < 8で戦っている方はこちら。
# こうではなく
if ($strstr($haystack, $needle, true) !== false) {
// 文字列が存在したときの処理
}
# こっち
if ($strpos($haystack, $needle, true) !== false) {
// 文字列が存在したときの処理
}
strpos()はstrstr()より高速でメモリ消費も少ないらしい
array_key_exists()はkey_existsで良い
key_exists($key, $array)
エイリアス。単純に文字数が減るので良い
exit はdie でも良い
die; // exitと同じ
die(1); // エラーコード付き
エイリアス。単純に「へぇ」となるだけ。
スクリプト・クラスファイルで、?phpは閉じるな
?>で閉じてファイルの末尾に改行があると、改行がプログラムの出力となる。バグが起こりやすい。
まあちゃんとフォーマッタが動いていれば自動的に削除されるが。
連想配列操作は各フレームワークのcollectionを使うようにする
配列操作に関して、メソッドチェーンでできるようになるなど、多言語ライクに使えるようになり、ストレスフリー
# 配列から新しいコレクションインスタンスを生成
# 各要素に対しstrtoupperを実行し、それから空の要素を削除している
$collection = collect(['taylor', 'abigail', null])->map(function ($name) {
return strtoupper($name);
})->reject(function ($name) {
return empty($name);
});
(サンプルコードはhttps://readouble.com/laravel/8.x/ja/collections.html より拝借)