generated at
PHPの罠
よくあるPHPのdisrespect
PHPはめちゃくちゃ難しい言語であると思うmrsekut
RustやHaskellよりも

「ここが良くない」をまとめる時間すら無駄だと感じるmrsekut
PHPのメモってだいたいバッドノウハウ
メモっておかないと後で困るが、
メモっている作業が全く生産的でない



関連ページも参照

運用でカバーなことが多すぎるんだよmrsekut


デザインに統一感がない
sneak_caseとCamelCaseの混同
引数の順番が統一されていない


変数の前や、関数名のprefixの &

PHPのswitch文

配列系の標準関数、変な仕様が無いものの方が少ない印象があるmrsekut


elseifが行けたり行かなかったりする


変数が全部mutable





extract関数 ref


== 演算子



3項演算子が左結合 ref
php
<?php $var = 1; echo ($var == 1 ? 'one' : $var == 2 ? 'two' : 'three') . "\n"; # 'two'
(($var == 1 ? 'one' : $var == 2) ? 'two' : 'three') と解釈されているせい





$http_response_header
リクエストを送ったらレスポンスがこのglobal変数に入るらしい
ヤバスギ


Googleにヒットする記事に変なものが多い
「かんたん(そう)」であるが故に
コミュニティが悪い


型が中途半端
健全性が全く担保されていない
中途半端に型があるせいで「型がない」とボヤくと「あるやん」と言われる
array型は、arrayとしか書けない
int[] Hoge[] みたいな表現はできない
PHPDocでは一応書ける
型を指定しなくてもエラーにならない
型推論がしょぼい
関数の返り値とか
mixed になる
private propertyに代入してもエラーが出ない
arrayだからかもしれん
静的型がガバガバなのに、実行時型検査をする
辛くはない(言語化できてないだけ)
違和感がある
関数の引数の型にunion型を指定できない
v8で入るらしい ref
class内でpropertyを宣言していなくても $this->hoge と書いてもエラーが出ない


無のときの判定方法が多すぎる
結果がどれも微妙に異なるからこんなに多いわけだがmrsekut
isset
empty
is_null
if($hoge)



Syntaxがダサい
記述量が多い
毎回 $ と入力するのがダルい



アンチアンチPHPの皮を被ったアンチPHP