◆ >> や << で int キャストできる
◆ ~~ は数値以外でできない 

前に PHP で ~~ を使って int キャストしようとしたら動いてくれませんでした
http://var.blog.jp/archives/47299030.html

ですが >> や << だと動くことを発見しました
~~ も >> もビット操作だから JavaScript みたいに結果はいっしょだとおもっていたので驚きでした

こんな感じになります
>>> 1>>0
=> 1
>>> -1.2>>0
=> -1
>>> "abc">>0
=> 0
>>> "0123">>0
=> 123
>>> true>>0
=> 1
>>> false>>0
=> 0
>>> [10]>>0
=> 1
>>> null>>0
=> 0
>>> 3.14<<0
=> 3
>>> $a = new StdClass
=> {#176}
>>> $a>>0
PHP error: Object of class stdClass could not be converted to int on line 1
=> 1
psysh だからコンソールが >>> なのでちょっと見づらい……

右や左へのビットシフトを 0 回します
なので値はおんなじですが int キャストがされています

~~ ではできなかった boolean 値や文字列も!

オブジェクトではエラーですが エラーメッセージから int キャストしようとしていることがわかりますね

できるとはいっても JavaScript では parseInt(val) と書くのが長いので演算子でできるのがうれしかったのですが PHP だと (int)val でできるので わざわざ x>>0 と見づらいことする必要はないと思います

ムダ知識として ~~ はダメだけど >> だと int キャストできると覚えておけば良いと思います
奇跡的に役立つ日がいつかくるかもしれません
php7 でも同じ挙動するかは知らないです