PHP

出典: へっぽこ実験ウィキ『八百科事典(アンサイクロペディア)』
移動: 案内, 検索

PHP(英語:Print HomePage)とは、プログラミング初心者の訓練用に作られたプログラミング言語である。

[編集] 概要

PHPはホームページをプリントするために作られた言語である。専用言語であるためにそのプリント速度は速く、通常の3倍の速度が出るといい、初心者には大変人気がある。

ところがこれは仮の姿にすぎない。実はPHPは難解な仕様となっており、一度ハマるとデバッグに通常の30倍かかるという恐ろしい言語なのである。一説には中東の某国が対立する国の技術者をハメるために作られたとも、プログラミング初心者を鍛え上げるために作られたともいわれる。

とは言え使い方さえ誤らなければ通常の3倍の速度が出る高性能さも合わせ持つのである。見かけとは違い素人お断りのやんちゃな言語といえよう。

[編集] 仕様

以下はすべて仕様であって、断じてバグではない。バグではないといったらバグではない。

  • 「弱い型付け」を採用しており、データを勝手に変換・解釈してくれる。そのせいで誤動作しても原因がつかめない。
  • 関数の名前に一貫性がない。(例:str_replace, strlen, parse_str ...)
  • 引数の順番に一貫性がない。(例:in_array は第一引数が探索対象、strpos は第二引数が探索対象である・・・)
  • 後付け仕様が多く、バージョンどころかリビジョンを変えただけで関数の振る舞いが違うことがある。
  • ↑と相まってプログラムの振る舞いがにわかには予想できない。
  • "0x0A" == "10" は真である。
  • 異常な文字エンコーディングも許容してしまう。
  • 変数$aにオブジェクトが格納されているときに「$b=$a;」とすると、複製がコピーされる。ちなみにオブジェクトの参照(リファレンス)を代入したいときは「$b=&$a;」とする。Singletonのつもりで = とした日にゃ恐ろしく見つかりにくいバグとなる。
  • 「.」は文字列連結演算子であり、オブジェクトのメンバ参照には「->」を使用する。普通の言語とはちょっと違うぜ!
  • 細かい話↓
    • php.iniのpost_max_sizeを2048Mにすると、エラーも出さずに何もpostされなくなる。
    • sort関数の振る舞いは相当おかしいらしい。おかしすぎて筆者も説明しきれないほどである。
    • PHP5.0 の fgetcsv() の振る舞いはロケールの設定に依存する。
    • strpos('abcd', 'a') は 0 を返すが、0 は偽である。
Wikipedia
ユーモア欠落症患者のために、ウィキペディアの専門家気取りたちが「PHP:_Hypertext_Preprocessor」の項目を執筆しています。
個人用ツール
View and edit namespaces data

変種
操作
案内
編集者向け
姉妹プロジェクト
ツールボックス
他の言語