PHPの罠
よくあるPHPのdisrespect
PHPはめちゃくちゃ難しい言語であると思うmrsekut.icon
RustやHaskellよりも
「ここが良くない」をまとめる時間すら無駄だと感じるmrsekut.icon
PHPのメモってだいたいバッドノウハウ
メモっておかないと後で困るが、
メモっている作業が全く生産的でない
関連ページも参照
運用でカバーなことが多すぎるんだよmrsekut.icon
デザインに統一感がない
sneak_caseとCamelCaseの混同
引数の順番が統一されていない
https://note.com/shimakaze_soft/n/n03992e2e8c22
https://matz.rubyist.net/20080126.html#p04
https://ameblo.jp/nikko-inma/entry-11122429825.html
https://qiita.com/nori0620/items/08bba8649fa5b608f695
http://t.ly/YoRE
https://blog.toshimaru.net/php-is-not-bad-language/
https://matz.rubyist.net/20080126.html#p04
PHPの参照
変数の前や、関数名のprefixの&
https://www.php.net/manual/ja/language.references.return.php
http://javablack.hatenablog.com/entry/20131212/p2
https://note.com/shimakaze_soft/n/n6e19f705f757
https://bitstar.jp/blog/2010/01/07/754/
https://ameblo.jp/nikko-inma/entry-11122429825.html
http://tanakahisateru.hatenablog.jp/entry/2013/12/12/012728
http://javablack.hatenablog.com/entry/20131212/p2
PHPのswitch文
http://blog.tojiru.net/article/403698034.html
PHPの配列操作
配列系の標準関数、変な仕様が無いものの方が少ない印象があるmrsekut.icon
elseifが行けたり行かなかったりする
https://www.php.net/manual/ja/control-structures.elseif.php
変数が全部mutable
extract関数 ref
==演算子
https://gyazo.com/640221016ed069fa8653bf0499343a82 https://twitter.com/dyoshimitsu/status/1332508068135923712
3項演算子が左結合 ref
code: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.icon
https://qiita.com/shinichi-takii/items/00aed26f96cf6bb3fe62
isset
empty
is_null
if($hoge)
Syntaxがダサい
記述量が多い
毎回$と入力するのがダルい
PHPの嫌さ
アンチアンチPHPの皮を被ったアンチPHP
https://qiita.com/nori0620/items/08bba8649fa5b608f695
https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/