PHP (プログラミング言語)

提供: miniwiki
移動先:案内検索

テンプレート:Sakujo/本体 テンプレート:Copyright

PHP
登場時期 2024年3月28日
最新リリース 7.2.9/ 2018年8月16日(5年前) (2018-08-16
評価版リリース 7.3.0 beta 2/ 2018年8月16日(5年前) (2018-08-16
型付け 強い動的型付け
主な処理系 PHP, HHVM, Phalanger
方言 Hack
Wikibooks logo PHP - ウィキブックス
テンプレートを表示

PHP(ピー・エイチ・ピー)は "The PHP Group" によってコミュニティベースで開発[1]されているオープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページ作成するための機能を多く備えていることを特徴とする[2]。 名称の PHP再帰的頭字語として、 "PHP: Hypertext Preprocessor" を意味[3][4]するとされており、「PHPはHTMLプリプロセッサである」とPHP自身を再帰的に説明している。

概要

PHPはラスマス・ラードフが個人的にCで開発していたCGIプログラムである "Personal Home Page Tools" (短縮されて "PHP Tools" と呼ばれていた)を起源とする[4]。 元々はラードフ自身のWebサイトで簡単な動的Webページを作成するために用いられていたが、その後データベースへのアクセス機能などを追加したPHP Toolsを1995年にGPLの下で公開した[5]。 オープンソースライセンスの下で公開されたことにより同ツールの利用者が増加し、機能の追加を行う開発者たちの貢献もあって、幾度かの大きなバージョンアップを経て今日に至っている。 PHPの再帰的頭字語が PHP: Hypertext Preprocessor となったのは2017年現在の文法の基礎が確立したPHP 3から[4]である。

先に述べたように、PHPは動的なWebページを生成するツールを起源としているため、公式の処理系にはWebアプリケーション開発に関する機能が豊富に組み込まれている。 元々PHPはプログラミング言語と言えるものではなく、単にテンプレート的な処理を行うだけであったが、度重なる機能追加やコードの書き直しにより、2017年現在リリースされているPHP 5やPHP 7は目的によらず汎用的に使うことの出来るスクリプト言語となっている。 特にApache HTTP ServernginxといったWebサーバーソフトウェアから動作させるスクリプト言語として選択されてサーバーサイドWebアプリケーション開発に利用されることが多い。

プログラミング言語としてのPHPは、CPerl, Javaなどのプログラミング言語に強く影響を受けており、これらの言語に近く学習しやすい文法を有する。 組み込み関数についてもこれらの言語から直接輸入されたものも多く、関数名を変えずにそのまま取り込んだことで標準関数の命名規則が一貫していないといった問題も有している。 またC由来のヌル終端文字列ヌル文字を含むことを許容する文字列とが併存し、関数によってどちらを取り扱うかが異なっていたために深刻なセキュリティ上の問題を起こしたこともある[6]

PHPで書かれたライブラリは、PEARを利用してシステムワイドにインストールしたりユーザ単位で利用することが多かったが、2012年にRubyのパッケージ管理ツールであるRubyGems及び依存関係管理ツールbundlerNode.jsnpmに影響を受けて開発されたComposerが公開されたことにより、パッケージリポジトリPackagist[7]に登録されたライブラリをプロジェクト単位で利用することが容易になった。

PHP製のWebアプリケーションフレームワークが増加したことにより、それらが提供するロガーやHTTPリクエストハンドラなどといった共通の機能を実装するコードの再利用性を高めるため、2010年頃にフレームワーク開発者などが集まってPHP Standard Groupを立ち上げた[8]。 PHP Standard Groupはその後PHP-FIG (Framework Interoperability Group)に改称し、クラスオートローディングの規格やコーディング規約などの推奨される標準規格、PSR (PHP Standards Recommendations)の策定を行っている[9]

プログラミング言語としての特徴

処理系としての特徴

  • サーバーサイドWebアプリケーション構築のための豊富な組み込み関数
  • データベースへの容易なアクセス(ベンダーごとの組み込み関数、PDO
  • PECLによる言語機能の拡張
  • 多くのWebサーバへの組み込みの標準サポート

構文

プログラミング言語としてのPHPはCPerlなどの影響を強く受けており、同じくこれらに影響を受けたRubyPythonと比較してよりCそのままに近い制御構文を有している。 またクラスインターフェイスといったオブジェクト指向構文はC++よりJavaに近いものが採用されている。 文法の近さによって利用者の多いCやJavaからPHPを学んだり、その逆も行いやすいことは言語の学習コストの面からは大きな利点である。

Hello world

PHPによるHello worldの最も簡単な実装は、単にテキストファイルとして「Hello world」を記述するだけでよい。

Hello world!

PHPはテキストファイルにHTMLタグのように埋め込んで書き、それ以外の部分はそのまま出力されるため、上記は(プログラムとして実行される部分は存在しないものの)正しく処理系によって認識されて「Hello world!」を出力する。 もう少しプログラムらしい書き方をすれば次のような記述が出来る。

<?php echo 'Hello world!'; ?>

PHPの処理系はPHPタグ<?php ?>で囲われた部分を解釈・実行し、その外側の部分はそのまま文字列として出力する。 単純にデータを出力する場合にはPHPタグを<?= ?>と略記することが可能であり、更にPHPタグがファイルの末尾にある場合はファイル末尾の空白や改行の影響を避けるためにPHPタグを閉じないことが推奨されるので、次のように書いても同じ結果が得られる。

<?='Hello world!'

文字列と数値の違い

次のように、数値として「 5+2 」を行うと7が出力される。ただし「5+2」をシングルクォーテーションダブルクォーテーションで囲むと、文字列と解釈されてそのまま出力される。

<?php 
   echo 5+2; //結果: 7
   echo '5+2'; //結果: 5+2
?>

処理系

プログラミング言語としてのPHPを実行するための The PHP Group による公式な処理系の実装も、プログラミング言語としてのPHPと区別されることなく PHP と呼ばれる。 2014年頃までプログラミング言語としてのPHPには規格などが存在しなかった[10]ため、公式の処理系の実装およびマニュアルの記述がその代わりとなっていた。 2018年1月現在では、作業中となっているが、プログラミング言語としての仕様は処理系の実装と分かれて文書化されている[11]

この実装はCで書かれており、PHP LicenseおよびZend Engine Licenseの下で公開されている自由なソフトウェアである。 PHP4以降において、プログラミング言語としてのPHPを解釈・実行するエンジンとしてZend Engineが使用されており、PHP5よりZend Engine 2、PHP7ではZend Engine 3へと順次バージョンアップされている。 Zend EngineはPHP 3の主要な開発者であるアンディ・ガトマンズおよびゼーブ・スラスキー(後にZend Technologies Ltd.を設立)により設計・開発されたスクリプト言語エンジンであり、現在はThe PHP GroupによりPHPと共に開発されている。 Zend Engineは1つのプロセスが1つのインタプリタのコンテキストを持つように設計されていて、単独ではマルチスレッドを用いた処理をサポートしていない。 PHPはそのソースコードのほとんどがPHP Licenseの下でリリースされるが、Zend EngineのコードについてはZend Engine Licenseが適用される。

実際のPHPの構成はZend Engineに加え、PHPの組み込み関数の実装、Webサーバや標準入出力とスクリプティングエンジンの間を仲介するSAPI (Server API) レイヤ、マルチスレッドで動くWebサーバのモジュールとして利用される場合にグローバル変数のセマンティクスを提供するTSRM (Thread Safe Resource Manager)、プラットフォーム間での入出力機構やAPIの差異を吸収するStreamsレイヤを含む。 一部の組み込み関数はプラットフォームごとに挙動が違うため、スクリプトによっては移植作業が必要になる場合がある。

PECLによる拡張

公式の処理系に対して、CC++で記述された拡張ライブラリを提供する PECL (The PHP Extension Community Library) というプロジェクトが存在する。 基本的にPECLのライブラリは標準ではPHPに組み込まれてはいないものが多いが、PECLで開発されていたライブラリがPHPの本体に標準でバンドルされるようになったり(PDO)、逆に非推奨となった機能が本体より取り除かれ、PECLでメンテナンスが継続される(mcrypt)こともあり、拡張機能としてはPHPの準標準と言える立ち位置にある。

対応する主要DBMS

PHPは数多くのDBMSを標準でサポートしている。 提供されるAPIは、ベンダ固有モジュールというDBMS毎に提供される専用モジュールによるものと、ベンダ毎の差異を吸収して一貫したインターフェイスで様々なDBMSに接続出来るデータベース抽象化レイヤとがある。 特にデータベースをより高度に抽象化して扱うライブラリなどでは、様々なDBMSに対応するためにPHP5.1で標準になったデータベース抽象化レイヤ PDO をバックエンドとして選択するものが多い。

Webサーバとの統合

PHPをWebサーバで動作させる方法には、実行ファイル形式 (CGI / FastCGI)、モジュール形式(mod_php / ISAPI など)がある。 どの方法を利用するか(利用出来るか)はWebサーバにより異なる。 実行ファイル形式によるCGIはほぼ全てのWebサーバに対応しているが、Apacheで動作させる場合はmod_phpとFastCGI、IISで動作させる場合はFastCGIとISAPI、lighttpdNginxで動作させる場合はFastCGIが利用可能である。

このほかにも、PHPに標準で実装されているWebサーバ用APIは多い。以下に一覧を挙げる。

とくに、HTTPリクエストの度にプロセスを起動させないインタフェース(Apacheとmod_phpの組み合わせ、またはlighttpdなどのFastCGIに対応したWebサーバ)での動作が高速である。

その他の処理系

PHPの処理系は公式の実装を含めいくつかの異なる実装が存在する。 そのうち比較的よく知られているものについて簡単に記述する。

HHVM (HipHop Virtual Machine) (PHP License, Zend Engine License)
Facebookによって開発された処理系で、実行の高速化のために実行時(JIT)コンパイル方式を採用している。HHVMは実行時にソースコードをHipHopバイトコードと呼ばれる独自の中間言語にコンパイルし、そこから動的に機械語にコンパイル/最適化を経て実行される。
Phalanger (Apache License)
プラハ・カレル大学のオープンソースプロジェクトとして開発されている処理系で、PHPのソースコードをCILバイトコードにコンパイルすることにより.NET Framework上で動作させることを可能にしている。

PHPで書かれたソフトウェア

PHPは学習コストの低さ、記述の容易さから多くのアプリケーションが開発されている。 Wikipediaを動作させているアプリケーションであるMediaWikiもPHPによって記述されている。

本節ではPHPで書かれた代表的なアプリケーションを列挙する。

ウェブアプリケーション、CMSなど

ウェブアプリケーション・フレームワーク

テンプレートエンジン


歴史

前史

ラスマス・ラードフは自身のWebページで利用するため、1994年にCで書かれたCGI用バイナリ群を作成し、 "Personal Home Page Tools" と命名した。 このCGIソフトウェアは略して "PHP Tools" と呼ばれることが多かったようである。 その後、利用者からの機能要望が増えたため、オリジナルのPHP Toolsは大きく書き直され、データベースを利用することが出来るようになった。 単純なツール群から一種のフレームワークとしての機能を有するようになったのである。 ラードフは1995年6月8日にGPLの下でPHP Toolsを公開、オープンソースソフトウェアとして最初のリリースを行った。

1995年9月、ラードフはPHP Toolsを発展させ、現在のPHPにも受け継がれている特徴、Perl風の変数名やHTMLフォームデータの自動取得、そしてHTMLへの埋め込み型の記述方式などを持ったツール "FI" (Form Interpreter) を実装した。 翌月にはFIを完全に書き直し、 "Personal Home Page Construction Kit" という名前でリリースを行い、CやPerlに近い構文を有する簡易スクリプトツールへと発展した。

このツールは再び一から書き直され、ユーザ定義関数のサポートなど、プログラミング言語としての機能を有するようになった。 1996年4月になるとPHPとFIの名称を合わせた "PHP/FI" として公開された。 同年6月に、後にPHP 2として言及される "PHP/FI Version 2.0" のベータ版がリリースされた。 PHP/FI Version 2.0は翌1997年11月に正式版がリリースされ、その後1998年1月に一度アップデートが行われたあとはメンテナンスは行われなかった。

PHP 3

イスラエルのアンディ・ガトマンズゼーブ・スラスキーは、e-コマースアプリケーションを開発するためにPHP/FI Version 2.0を利用しようと考えていたが、PHP/FIには機能が不足していた。 そこで1997年、彼らはラードフに対してPHP/FIを作り直す方法を検討していることを伝えた。 ガトマンズとスラスキ―はPHP/FIで使われていたパーサを書き直し、ラードフとも協力して新たなプログラミング言語を開発した。 この言語は再び "PHP" と命名されたが、"Personal Home Page Tools"が抱えていた個人用という印象を避けるため、新しく "PHP: Hypertext Preprocessor" という再帰的頭字語を与えられることになった。 1998年6月、ラードフ、ガトマンズそしてスラスキーに加え、世界中の開発者らが立ち上げたPHP Development Teamは "PHP 3.0" をPHP/FI Version 2.0の後継として、GPLPHP Licenseとのデュアルライセンスの下でリリースした。

PHP 4

PHP 3.0がリリースされて間もなく、ガトマンズとスラスキーはPHPのプログラミング言語を処理するコアの部分の再設計を行い、新しく作り上げた実行エンジンを彼らの名前からとって "Zend Engine" と命名した。 2000年5月、このZend Engineを使用した大幅なパフォーマンスの改善を行い、より多くのWebサーバのサポートなどの機能拡張を行った新しいバージョンである"PHP 4.0"がリリースされた。 PHP 4ではコピーレフト条項がPHPの利用拡散を妨げるという判断[12]により、ライセンスからGPLが外れてPHP LicenseおよびZend EngineのコードについてはZend Engine Licenseが適用されることになった。

PHP 4は4.0から4.4までがリリースされ、2008年8月にセキュリティ対応を含めた全ての開発が終了している。

PHP 5

2004年7月、新たにZend Engine 2をコアとし、オブジェクト指向構文をより一層強化したバージョンである "PHP 5.0" がリリースされた。 マイナーアップデートにより様々な機能の追加が行われ、DBMSへの一貫したアクセスインターフェイスを提供する抽象化レイヤPDOが導入されたり、PHPが欠いていた名前空間静的遅延束縛クロージャなどをはじめとしたプログラミング言語としての機能強化が頻繁に取り入れられている。

PHP 5.4では特筆すべき機能として開発用の組み込みWebサーバが導入されており、他のWebサーバを導入しなくともWebアプリケーション開発が容易に行えるようになった。 PHP 5.6では対話式デバッガがSAPIとして組み入れられた。

PHP 5は既にほとんどのバージョンで開発が終了しており、残るPHP 5.6のセキュリティ対応も2018年に終了する予定である。

PHP 6

PHP 5.3の次のリリースとなるべく開発されていたバージョンで、エンジンの内部処理がUTF-16に置き換えられる計画であったが、多くの問題に見舞われたことから2010年に開発が断念されている。 PHP 5.3の次のリリースはPHP 5.4へと置き換えられ[13]、また次のPHPのメジャーリリースがPHP 7とされたことでPHP 6は欠番となった。

PHP 7

2015年12月に内部エンジンをZend Engine 3とした"PHP 7.0"がリリースされた[14]。 Zend Engineの改善を行うPHPNG (PHP Next-Gen) プロジェクトの成果を取り入れており、データ構造の改善などにより、前バージョンのPHP 5.6と比べて25%から70%の性能改善が図られている。 また言語仕様も大きく拡張されており、引数のタイプヒンティングにスカラー型が指定できるようになる[15](タイプヒンティングは5.1で導入されたが、クラスや配列など一部の型に限られていた)他、戻り値へのタイプヒンティング[16]も導入されており、前年に発表されたHHVM用プログラミング言語Hackの影響が見受けられるものになっている。[17]

リリース履歴

凡例
意味 メンテナンスの状況
Red 旧版 メンテナンス終了
Yellow 安定版 セキュリティ対応のみ
Green 安定版 バグ修正とセキュリティ対応
Blue 開発版 新機能の追加
Ver. リリース日時 サポート期限[18][19] 特記事項
アクティブ セキュリティ
1.0 1995-06-08 正式名称は"Personal Home Page Tools (PHP Tools)". "PHP"という名称が使用された最初のバージョン。[4]
2.0 1997-11-01 正式名称は"PHP/FI 2.0". 今日まで続くプログラミング言語としてのPHPが成立した最初のバージョン。
3.0 1998-06-06 2000-10-20[19] このバージョンからコミュニティーベースの開発に移行した。特にアンディ・ガトマンズやゼーブ・スラスキーが基礎となる部分を大幅に書き直した。[4]
4.0 2000-05-22 2001-06-23[19] Zend Engineを導入し、コードのパース部分と実行部分とが分離された。[20]
4.1 2001-12-10 2002-03-12[19] スーパーグローバル変数の導入 ($_GET, $_POST, $_SESSION, etc.)[20]
4.2 2002-04-22 2002-09-06[19] register_globalsが標準で無効化された。これによりセキュリティホールの原因となりがちだった外部入力をチェック無しで直接グローバル変数に格納する処理が行われなくなった。[20]
4.3 2002-12-27 2005-03-31[19] これまで提供されていたCGI用SAPIに加えてコマンドラインインターフェイス(CLI-SAPI)が導入された。[20][21]
4.4 2005-07-11 2008-08-07[19] メモリ破損の脆弱性を修正した。これによりバイナリ互換性が崩れ、PHP version 4.3.x向けにビルドされた拡張が使用出来なくなった。[22]
5.0 2004-07-13 2005-09-05[19] Zend Engine 2の導入とオブジェクト指向構文の刷新。[23]
5.1 2005-11-24 2006-08-24[19] 大幅なパフォーマンス改善。[23] 一貫したデータベースアクセスインターフェイスを提供するPHP Data Objects (PDO)の導入。[24]
5.2 2006-11-02 2011-01-06[19] フィルター拡張を標準で有効に。JSONサポートを標準化。[23]
5.3 2009-06-30 2014-08-14[19] 名前空間のサポート、 静的遅延束縛goto演算子、クロージャ、PHPアーカイブ (phar)、循環参照に対するガベージコレクションWindowsサポートの改善、SQLite3MySQL関数のバックエンドライブラリをlibmysqlからmysqlndに置き換え、MIMEサポートの改善のためmime_magic拡張の代替としてfileinfo拡張を追加、i18n拡張、ereg拡張の非推奨化。
5.4 2012-03-01 2015-09-03[19] トレイトのサポート、配列の短縮記法の導入。register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister()および session_is_registered()の削除。ビルトインWebサーバ。[25] 既存の機能に対するいくつかの改善、パフォーマンスの向上とメモリの削減。
5.5 2013-06-20 2016-07-10[18] ジェネレータおよび例外処理に於けるfinallyブロックの導入、OpCache (Zend Optimizer+に基く)のバンドル。[26]
5.6 2014-08-28 2017-01-19[18] 2018-12-31[18] 定数式、可変長引数関数、引数の展開演算子(...)、累乗演算子(**)、定数と関数に対するテンプレート:Mono文、対話型デバッガphpdbgをSAPIモジュールとしてバンドル、その他細かな改善。[27]
6.x 破棄 N/A N/A ネイティブUnicodeサポートを含むことを検討されていたが、最終的にリリースされず欠番となった。[28][29]
7.0 2015-12-03[30] 2017-12-03[18] 2018-12-03[31] Zend Engine 3 (パフォーマンスの改善[32]とWindowsでの64-bit整数サポート[33])、可変変数に対する構文の統一[34]

ASTに基くコンパイル[35]Closure::call()の追加[36]ビットシフト演算のプラットフォーム依存性の排除[37]null合体演算子??[38]エスケープシーケンス構文によるUnicodeコードポイント指定[39]、関数の戻り値の宣言構文[16]、スカラー型のタイプヒンティング[15]宇宙船演算子<=>[40]ジェネレータの委譲[41]、無名クラス[42]、より良い暗号論的擬似乱数生成器[43]、PHPの内部エラーを例外で置き換え[44]、複数の対象をuseする場合の短縮構文[45]

7.1 2016-12-01 2018-12-01[18] 2019-12-01[18] 関数が値を返さないことを宣言可能に(void return type)[46]、クラス定数の 可視性が宣言可能に[47]
7.2 2017-11-30 2019-11-30[18] 2020-11-30[18] countableでない型のオブジェクトに対するcount()で警告を発生するように[48]

脚注

  1. Contributing to PHP”. php.net. . 2018閲覧.
  2. テンプレート:Bquote
  3. What is PHP”. PHP Manual. php.net. . 2018閲覧.
  4. 4.0 4.1 4.2 4.3 4.4 History of PHP”. PHP Manual. php.net. . 2018閲覧.
  5. Rasmus Lerdorf. “Announce: Personal Home Page Tools (PHP Tools)”. Google Group. . 2018閲覧.
  6. packagist.org
  7. www.php-fig.org
  8. PHP Standards Recommendations”. PHP-FIG. . 2018閲覧.
  9. Joab Jackson (2014年7月31日). “PHP gets a formal specification, at last”. ITworld. IDG. . 2018閲覧.
  10. The PHP Group. “PHP Language Specifications”. GitHub. . 2018閲覧.
  11. PHP Licensing”. php.net. . 2018閲覧.
  12. PHP6開発 UTF-16化を断念、5.3へロールバック”. マイナビニュース (2010年3月17日). . 2015閲覧.
  13. PHP 7.0.0 Released”. php.net. . 2015閲覧.
  14. 15.0 15.1 RFC: Scalar Type Declarations”. php.net (2015年3月16日). . 2015閲覧.
  15. 16.0 16.1 RFC: Return Types”. php.net (2015年1月27日). . 2015閲覧.
  16. PHP 7 Infographic - 5 things you need to know #php #zend”. Zend Technologies Inc.. . 2015閲覧.
  17. 18.0 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 Supported Versions”. php.net. . 2017閲覧.
  18. 19.00 19.01 19.02 19.03 19.04 19.05 19.06 19.07 19.08 19.09 19.10 19.11 Unsupported Branches”. php.net. . 2015閲覧.
  19. 20.0 20.1 20.2 20.3 PHP: PHP 4 ChangeLog”. The PHP Group (2008年1月3日). . 2008閲覧.
  20. Using PHP from the command line”. PHP Manual. The PHP Group. . 2009閲覧.
  21. PHP 4.4.0 Release Announcement”. PHP Mannual. The PHP Group. . 2013閲覧.
  22. 23.0 23.1 23.2 PHP: PHP 5 ChangeLog”. The PHP Group (2007年11月8日). . 2008閲覧.
  23. PHP manual: PDO”. The PHP Group (2011年11月15日). . 2011閲覧.
  24. Built-in web server”. . March 26, 2012閲覧.
  25. PHP 5.5.0 changes”. php.net. . 2015閲覧.
  26. Migrating from PHP 5.5.x to PHP 5.6.x”. php.net. . 2014閲覧.
  27. Resetting PHP 6”. . 2018閲覧. “There have been books on the shelves purporting to cover PHP 6 since at least 2008. But, in March 2010, the PHP 6 release is not out - in fact, it is not even close to out. Recent events suggest that PHP 6 will not be released before 2011 - if, indeed, it is released at all.”
  28. PHP 7 moves full speed ahead”. . 2018閲覧. “Recent versions of PHP have been part of the 5.x release series, but there will be no PHP 6. “We’re going to skip [version] 6 because years ago, we had plans for a 6 but those plans were very different from what we’re doing now,” Gutmans said. Going right to version 7 avoids confusion.”
  29. News Archive – 2018: PHP 7.2.5 Released”. php.net (2018年4月26日). . 2018閲覧.
  30. PHP: Release Process” (2011年6月20日). . 2018閲覧.
  31. PHP: phpng”. php.net. . 2014閲覧.
  32. PHP: rfc:size_t_and_int64_next”. php.net. . 16 December 2014閲覧.
  33. PHP RFC: Uniform Variable Syntax”. php.net (2014年5月31日). . 2014閲覧.
  34. PHP: rfc:abstract_syntax_tree”. php.net. . 16 December 2014閲覧.
  35. PHP: rfc:closure_apply”. php.net. . 16 December 2014閲覧.
  36. PHP: rfc:integer_semantics”. php.net. . 16 December 2014閲覧.
  37. PHP: rfc:isset_ternary”. php.net. . 16 December 2014閲覧.
  38. RFC: Unicode Codepoint Escape Syntax” (2014年11月24日). . 2014閲覧.
  39. Combined Comparison (Spaceship) Operator”. php.net. . 2015閲覧.
  40. PHP RFC: Generator Delegation”. php.net. . 2015閲覧.
  41. PHP RFC: Anonymous Classes”. php.net. . 2015閲覧.
  42. PHP RFC: Easy User-land CSPRNG”. php.net. . 2015閲覧.
  43. PHP RFC: Exceptions in the engine (for PHP 7)”. php.net. . 2015閲覧.
  44. PHP RFC: Group Use Declarations”. php.net. . 2015閲覧.
  45. PHP: rfc:void_return_type”. php.net (2015年11月9日). . 2015閲覧.
  46. PHP: rfc:class_constant_visibility”. php.net (2015年10月27日). . 2015閲覧.
  47. http://php.net/archive/2017.php#id2017-11-30-1

関連項目

外部リンク

テンプレート:PHP