ホームページ >バックエンド開発 >PHPチュートリアル >PHP はソフトウェア エンジニアに対してより高い要件を備えています
PHP はプログラマーにとってより高い要件があります
まず、PHP はコンパイル済みスクリプト言語でもあることは誰もが知っていますが、他のプリコンパイル済み言語とは異なり、中間コードにコンパイルされてからリリースされるわけではありません...しかし、実行するには毎回コンパイルが必要です。
このため、オープンソースの APC、eacc、商用 Zend O などのオペコード キャッシュがいくつかあります。
では、なぜ PHP はコンパイルと実行を分離しないのでしょうか?
PHP はコンパイルされたスクリプト言語では、コンパイル速度が非常に速くなります。他の言語ではセマンティックな最適化は行われませんが、記述されたコードが対応するオペコードに忠実に変換されます。コンパイラでの最適化作業が増えるとコンパイルが重くなり、またそれらをある程度分離する必要があります。
したがって、コンパイルと実行の分離によってソースコードの暗号化を実現したい場合、理論上は不可能になります。
さらに、コンパイルを直接分離しても特に大きなメリットはありませんが、デバッグとデプロイメント (思考、変更、コンパイル、公開、参照) の効率が低下します。そして、APC などのオペコード キャッシュ ツールはすでに非常に成熟しています...
この時点で、次の文に注意してください:「コンパイルではセマンティック最適化は行われません」...
これはなぜ私が言ったかというと、PHP はプログラムに対してセマンティックな最適化を実行しません。他のコンパイル言語とは異なり、PHP はコンパイル中にいくつかの最適化を行うのに役立ちません。
for ($ i=0;$i
C や Java などの他の言語の場合は、最適化して strlen を先頭に抽出すると役立つ場合がありますPHP の場合、これは一度だけ実行する必要があります。つまり、strlen は何度も呼び出されます。
$table = "table";
while( $i < 1000 ) {
$sql = "select * from " . $table . " where id = " . $i;
}
はい、 "select * from " . $table は 1000 回連結されます。
PHP プログラマは、他のプログラマとは異なり、最終的な実行効率が最も高くなるように、コードの実行方法とコードの記述方法を慎重に検討する必要があることがわかります。言語では、プログラマはその一部を最適化できます。作業はコンパイラに引き渡されます。
これが、「PHP はプログラマにとってより高い要件を備えている」と述べた理由です。 もちろん、これが良いか悪いかは意見の問題です。
オリジナルの LAMP Brothers を無料で入手してください。PHP ビデオ チュートリアル CD/「詳細な PHP の必須バージョン」を入手してください。詳細については、公式 Web サイトのカスタマー サービスにお問い合わせください: http://www.lampbrother.net