PHP で定数を慎重に使用する必要があるのはなぜですか?
Zend Framework のドキュメントには次のように書かれています: 定数には英数字とアンダースコアが含まれており、定数名として数字を使用できます。 定数名のすべての文字は大文字にする必要があります。クラス定数は、「const」を介してクラスのメンバーとして定義する必要があり、「define」で定義されたグローバル定数の使用は強く推奨されません。
PHP の公式フレームワークとして、なぜこのような要件があるのでしょうか?
一緒に分析しましょう。
PHP 定数は、定義後に変更したり、再度割り当てたりすることはできません。しかし、再度割り当てられた場合はどうなるでしょうか?
リーリーこのコードは通知エラーを報告します。その結果、定数を定義する前に、他の人が同じ名前の定数を定義した場合、その定数にどのような値が含まれているかが実際には分からない可能性があります。
PHPは定数を処理する際に複数の検索を行う必要があるため、効率が低いからです。
要約: PHP 定数の問題は、PHP の定数の処理方法が緩すぎることです。厳密にできれば、多くの問題は回避されるでしょう。実際のプロセスでは、変数を使用できる場合は定数を使用しないでください。変数を使用した方が効率的で便利です。
したがって、定数またはクラス変数を使用する必要がある場合は、次のメソッドを使用できます:
リーリーPHP 4 では、クラスのコンストラクターはクラス名と同じである必要があり、サブクラスのコンストラクター名はサブクラス名と同じである必要があります。親クラスのコンストラクターはサブクラスで自動的に実行されません。 。サブクラスで親クラスのコンストラクターを実行するには、次のようなステートメントを実行する必要があります:
$this->[親クラス()のコンストラクタ名]
PHP 5.0 以降では、construct() がコンストラクターとして一律に使用されますが、バージョン 4.0 のコンストラクター定義ルールと互換性があります。 4.0 コンストラクターとconstruct() 関数の両方が定義されている場合は、construct() 関数が優先されます。
改行は、プログラムを作成するときによく使用されます。改行を実行するには、PHP 組み込み定数 PHP_EOL を使用します。
小さな改行には、プラットフォームごとに異なる実装があります。 UNIX の世界では改行を置き換えるために n が使用されますが、その違いを反映するために Windows では rn が使用されます。さらに興味深いのは、Mac では r が使用されることです。したがって、unix シリーズでは n が使用され、windows シリーズでは rn が使用され、mac では r が使用されます。
そのため、システムはプラットフォーム システムに応じて異なる改行に変換します。ブラウザで行を折り返す場合は、PHP_EOL 変数を使用して行を折り返す必要があります