奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

PHPのコーディングにおけるベストプラクティスを考える準備記事

もう、PHPの仕事は色々な顧客としてきています(10〜15顧客ぐらい?)が、
まあ、案件(正確には、書いた人)によってコードも色々ですし、
で、ルールも色々(PSRが多いといえば多いですが、守られていたりそうじゃなかったり)ですし、
混迷を極めている感があるなと(苦笑)


で、自分としても、「そういえば一回も考えた事が無いな」と思い、
それで、ちょっと考えてみようかなと思いまして。


ただ、まあ勿論PSR(PHPコーディング規約)もありますけど、
「微妙な関数」ってあるじゃないですか。
あれを、結構業務のコードで見るわけですよね。
なので、勿論書き方的なものも考えていきたいわけですが、
まずは、関数をレビューしていきたいなと。


そこで、以下には「特に取り扱い注意」と思われる関数やメソッドの一覧を、
準備として書いておきます。
出典は、勿論以下の公式です。

PHP: 関数・メソッド - Manual

あと今回は、あくまで準備なので、
以下に書いている関数は、
「関数名をパッと見て、自分が気になった関数」程度ですので、
取り上げない関数も出てくると思います。
あと、当たり前ですが、全ての関数を知っているわけじゃない(むしろ、殆ど知らないですね)ので、
業務で出てくる頻度が多い関数が多いかも。
あと、どの関数にも言えることですが、
「使う前には、最低限公式のマニュアルを読む」はマストだと思いますね。


とりあえず、以下が目に付きました。
思ったよりも、多いですね・・・


addslashes
array_flip
array_push
array_rand
array_search
array_slice
array_splice
basename
chmod
ctype_alnum
ctype_alpha
ctype_digit
date
debug_backtrace
die
each
empty
ereg
escapeshellcmd
eval(まず使わないと思うが)
exec・shell_exec・passthru・system
extract
fgetcsv
file_exists
file_get_contents
in_array
is_numeric
mail
mb_check_encoding
mb_detect_encoding
mb_ereg
mb_split
md5
mime_content_type
mkdir
mt_rand
mysqli_result::fetch_all
mysqli_result::fetch_array
mysql_*
ord
pathinfo
PDOStatement::fetchAll
pg_fetch_all
pg_fetch_array
preg_*
rand
readfile
rmdir
sha1
shuffle
sort(他のソート系の関数も)
split
stat
strcmp
strip_tags
strpos
strtotime
str_getcsv
uniqid