ホームページ  >  記事  >  バックエンド開発  >  PHPの言語構造と関数の違いは何ですか

PHPの言語構造と関数の違いは何ですか

青灯夜游
青灯夜游オリジナル
2022-03-07 11:13:271364ブラウズ

相違点: 1. 言語構造は対応する関数の関数よりも高速です; 2. 言語構造は設定ファイル「php.ini」で無効にすることはできませんが、機能は無効にすることができます; 3.言語構造はコールバック関数として使用できませんが、関数は使用できます。

PHPの言語構造と関数の違いは何ですか

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。