相違点: 1. 言語構造は対応する関数の関数よりも高速です; 2. 言語構造は設定ファイル「php.ini」で無効にすることはできませんが、機能は無効にすることができます; 3.言語構造はコールバック関数として使用できませんが、関数は使用できます。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
よく比較されているものがあると思います。 PHP アプリケーションでは、isset() が strlen() の置き換えに使用される、isset は strlen よりも高速に実行されるなどと述べています。
例:
if ( isset($user) ) { //do some thing }
その理由は、isset が言語構造であり、strlen が関数であるためです。では、言語構造とは何でしょうか?関数とは何か違うのでしょうか?
1. 言語構造と関数とは
言語構造: PHP 言語のキーワードであり、言語文法の一部であり、言語構造によって定義することはできません。ユーザー、または言語拡張機能またはライブラリに追加されます。変数や戻り値がある場合とない場合があります。
機能: コード ブロックで構成されており、再利用できます。ソースコード的には Zend エンジンに基づいて実装されており、ext 拡張ライブラリの関数はこのように実装されています。
2. 言語構造が関数より速いのはなぜですか?
その理由は、PHP では、まず PHP パーサー (Zend エンジン) によって関数を言語構造に分解する必要があるためです。 ) なので、関数には言語構造よりも 1 つ多くのパーサー分析層があることがわかります。こうすることで、どの言語構造が関数よりも高速であるかをよりよく理解できます。
3. 言語構造と関数の違い
(1) 言語構造は対応する関数の関数よりも高速です
(2 ) 言語構造に誤りがある 処理が比較的荒い 言語キーワードなので再処理ステップがない
(3) 設定項目(php.ini)で言語構造を無効にすることはできません。しかし、関数ではそれが可能です。
(4) 言語構造はコールバック関数として使用できません
補足: 言語構造のリスト:
echo() print() die( ) isset() unset() include() array() list() empty() require(),
include_once() は関数であり、require_once() は関数であることに注意してください
推奨される学習: 「PHP ビデオ チュートリアル 」
以上がPHPの言語構造と関数の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。