binary
二進法とか二つのなんとかみたいな意味のなんか
例: binary tree → 二分木、binary operator → 二項演算子
そのなかでも、二進法で表現されたデータ(ビット)並び(バイト列)から構成されたデータ、その中でもテキストではないものを一般にバイナリデータと呼ぶ 本来はテキストデータもバイナリデータであるが、わざわざ正方形を平行四辺形とは呼ばないようなもの
そもそもPHPのstringは、バイナリ(バイト列)を保存できる (エンコーディング情報は持ってない) が、歴史的経緯から、キャスト(binary)は(string)の別名である (string)$num と同じように (binary)$num とも書ける
しかし、すべての文脈でエイリアスになるわけではない
function (string $s){} と同じように function (binary $s){} と書くと別の意味
PHP 7ではstringクラスは作れないが、binaryクラスはユーザー定義可能 PHPは過去にUnicodeベースの文字列を取り入れたPHP 6が画策された PHP 6になる前のPHP 5.2.1の時点で、予約のために(binary)でキャストできるようになった
その後PHP 6の路線はキャンセルされてPHP 5.3になったが、(binary)は削除されなかった そんなわけで、このキャストはPHP 6の忘れ形見なのでした