PHP だけの話ではなく,同じような構文を持つC言語で,以前に同じような議論がありました.
比較演算子 == と,代入演算子 = を書き間違えるのは時々あるミスで,かつ見つけにくいですよね.
上記の例でそのようなミスをしたとき,前者の書き方だと文法エラーとなりますが,後者だとエラーになりません
(括弧内の式の値は常に "t" になり,if文が必ず成立する).
というわけで,人間にとって直感的には後者のほうが読みやすいのですが,上記のエラーチェックの観点から
「前者の書き方が優れている」と主張されることがあります.
ただ,C言語の時は,「前者の書き方が優れている」と主張した入門書がとっても酷い品質だったことと,
このような「必ずしも文法エラーではないが,ちょっと怪しい」書き間違いをチェックするツールとして lint
という名の優秀なツールがすでに広く使われていたので,「人間にとって読み易い (後者の) 形で書くべきだ」
という結論でほぼ決着がついたと記憶しています.
PHP の場合はどうでしょう.lint モードはありますがあまり賢くないようですし,そもそも使い捨ての性格が
強い言語ですので,好みの問題でどちらを使っても良いのかな,と個人的には思います.
どちらも同じ意味です。
$変数の内容が t ならば、{}内のコードを実行すると言う意味になります。
if("t" == $変数){}
と書くべきところを間違って下記(1)のように書いてしまってもエラーになります。
if("t" = $変数){} ・・・(1)
下記(2)のように書いてしまうと、$変数に"t"を代入した結果(つまり真)を判定するので、コーディングミスに気付きにくいことがあります。
if($変数 = "t"){} ・・・(2)