Laravelアプリケーションの特定の機能をリファクタリングしていました。 ところどころ思ってたんと違う動作があって引っかかりました。 PHPの言語仕様を一通り確認したいなと思って読みました。
そういう目的があったので、ライブラリ、HTTPリクエスト、DB関連は飛ばしました。 こういう知りたいことがわかっているときは、良い感じに網羅されててちょうど良かったです。
僕は他のプログラミング言語経験者なので、ここはC言語っぽい、ここはJavaScriptっぽい、Rubyっぽい、C#っぽいと理解していきました。 その中でも変わっていると思った特徴があります。
- 大文字小文字を区別しない
- 関数の引数は値渡し。参照の値渡しじゃなくて、値渡し。
- 無名関数はクロージャーだけどデフォルトでは、無名関数の外側のローカル変数が見えない
これで、リファクタリングが捗りそうです。