C++幼女先輩

プログラミング成分多め

近況:PHP Laravel触ってます

なぜか今までPHPの仕事をしたことがなく
C++Java等のコンパイル言語ばっかだったし

今更PHP入門ですが、こいつがまた わかりやすい言語でして
表記がCやJavaに似てるから 慣れがある

ただし 何個か気を付けることがある

文字列の連結

+ではなく.
Perlですね

ラムダ、クロージャ

ラムダが使えるんだけど驚くことにC++でいうキャプチャがあるってこと
use() 内にキャプチャする変数を指定

変数

すべて頭に$が必要
メンバ変数やメソッドを呼ぶにも $this->method() とかく必要がある
メンバ変数を参照するときは メンバ変数名の前に$はいらない $this->menber
メンバ変数名を変数で呼ぶことができる。その時は変数名の前にも$をつける $idx = 'member'; $this->$idx; // $this->idxではなく $this->member が参照される

&

なんとPHPでは参照というのがある
関数の引数や foreachの変数は、コピーなのでそこに対して変更しても反映されないが
&をつけてやると、C++でいう参照となり値を変更することができる

===

JavaScriptなどにあるやつ
===だと型も見て(暗黙型変換をせず)比較してくれる
特に必要なのは null時チェックかな

isset、empty、is_null

細かい違いはおいておいて、コンパイル言語とは違い未定義という状態もあり得る
その時に falseを返したりする
ただしラムダのキャプチャ(use)なり、関数の引数にするときは Undefinedエラーが出るので定義しておかないとだめ
可変長引数も使えるけど・・・ねぇ・・・

Array

ちょいめんどう
配列はない。全部連想配列である
省略すると intのKey 自動インクリメントで保存されるので実質配列のように扱うことができるが
stringのKeyと同居することも出来る
また 初期化及び値を代入する際も hoge( 'key' => 'value') のように書く
ここは 慣れるしかない

Laravel

Railsライクなライブラリなので、なんとなーくRailsを知ってれば扱いやすいんじゃないかな?
Railsとの比較はほかの人に任せます。私は比較できるほどの知識はない

総括

Railsライク
文法はJava
所々 CやC++の知識があると楽なところが多い
C++Javaの人にはわかりやすい