2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

phpのコーディング中のちょっとしたtipsを淡々と追加していく記事

2
Last updated at Posted at 2021-02-11

タイトル通りの記事です。随時更新。ゆるゆるtipsを貯めていって、後々自分にとって役に立ったらいいなぁというモチベで書いています。

「ある文字列の中に、特定の文字列が存在するかどうか」だけを判断する際は、strstr()やstrpos()ではなくstr_contains()を使う[※version > 8]

if ($str_contains($haystack, $needle)) {
    // 文字列が存在したときの処理
}

参考:https://www.php.net/manual/ja/function.str-contains.php

ある文字列の中に、特定の文字列が存在するかどうかだけを判断する際は、strstr()よりstrpos()を使う[※version < 8]

やむを得ずphp version < 8で戦っている方はこちら。

# こうではなく
if ($strstr($haystack, $needle, true) !== false) {
    // 文字列が存在したときの処理
}

# こっち
if ($strpos($haystack, $needle, true) !== false) {
    // 文字列が存在したときの処理
}

strpos()strstr()より高速でメモリ消費も少ないらしい

参考:https://www.php.net/manual/ja/function.strstr.php

array_key_exists()はkey_existsで良い

key_exists($key, $array)

エイリアス。単純に文字数が減るので良い

参考: https://www.php.net/manual/ja/function.key-exists.php

exit はdie でも良い

die; // exitと同じ
die(1); // エラーコード付き

エイリアス。単純に「へぇ」となるだけ。

参考:https://www.php.net/manual/ja/function.die.php

スクリプト・クラスファイルで、?phpは閉じるな

?>で閉じてファイルの末尾に改行があると、改行がプログラムの出力となる。バグが起こりやすい。

まあちゃんとフォーマッタが動いていれば自動的に削除されるが。

連想配列操作は各フレームワークのcollectionを使うようにする

配列操作に関して、メソッドチェーンでできるようになるなど、多言語ライクに使えるようになり、ストレスフリー

参考:https://qiita.com/nori0620/items/08bba8649fa5b608f695

# 配列から新しいコレクションインスタンスを生成
# 各要素に対し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 より拝借)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?