ひでメモ

プログラムについて勉強したことを書きます。たぶん。

PHP

xor 演算子の優先順位は = (代入)より下位

PHP

自戒を兼ねて記事にします。内容はタイトルの通りなんですが知らずハマりました…… 結論 xor より代入のほうが優先順位が上なので $a に代入される値は xor が処理される前の値になります。 $a = true xor false; // true $a = false xor true; // false その…

PHPUnit の setMethods の代わりに使うメソッド

概要 PHPUnit でモックを作成する際に、、モック対象となるメソッドを指定する際にsetMethodsを使っていると、これは現在非推奨とのことで代わりのメソッドを調べました。PHPStorm が教えてくれました… ありがとうございます 代わりのメソッド setMethodsは…

PHP ≒ Apach が参照している回数が多いファイルをコマンドで確認する

PHP

概要 先日 NFS でマウントしているストレージへのアクセス過多がボトルネックとなりサービスへのアクセスがしづらくなるという状態が発生しました。 調査の中で、サーバのプロセスをトレースするコマンドを使ってプロセスがアクセスしたファイルを取得、内容…

【PHP】文字列の一部分を切り取りたい場合 mb_substr を使いましょう

PHP

タイトルは自戒です。 概要 日本語(マルチバイト文字)に対してsubstr()を使用してDB保存時にエラーになってしまった… ※ DBは Postgresql です ERROR: invalid byte sequence for encoding "UTF8": 0x8b ちゃんとエラーになるんですね。賢い… 対処 日本語など…

【PHP】unlink()・mkdir() のちょっとした便利な使い方

PHP

ディレクトリ内の全ファイル削除 rmdir()はディレクトリが空でないと使えないため、事前にディレクトリ内のファイルをすべて削除しようと思い PHP のマニュアルを調べていました。 するとunlink()のページのコメント に下記のようなコードを発見。 array_map…

【PHP】引数の型不一致エラー TypeError は Exception では拾えない

PHP

問題 以下のようなコードで catch で拾っているはずと思っていたエラーがそもそも拾えていませんでした。 try { // ここで関数の型不一致エラー発生 } catch (Exception $e) { // キャッチしたエラーをログに出力 } 原因 関数の型が不一致だった場合に発生す…