ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルでの static、const、define の違いを分析する

php_PHP チュートリアルでの static、const、define の違いを分析する

WBOY
リリース: 2016-07-21 15:06:08
オリジナル
956 人が閲覧しました

定義部分:
マクロは、定数値を置換するために使用できるだけでなく、式やコードセグメントを置換するためにも使用できます。 (マクロは非常に強力ですが、エラーが発生しやすいため、その賛否両論は非常に物議を醸しています。)
マクロの構文は次のとおりです:
#define マクロ名とマクロ値
提案および共通の習慣としてプログラマーにとって、マクロ名にはすべて大文字が使用されることがよくあります。
マクロの利点を活用します:
1) コードをより簡潔かつ明確にします
もちろん、これはマクロに適切な名前を付けるかどうかに依存します。一般に、マクロ名は明確かつ直感的な意味を持つ必要があり、場合によっては長い方がよい場合もあります。
2) 便利なコードメンテナンス
コンパイルプロセスにおけるマクロの処理は「前処理」と呼ばれます。つまり、正式なコンパイルの前に、コンパイラはまずコード内に出現するマクロを対応するマクロ値に置き換える必要があります。このプロセスは、皆さんや私がワープロ ソフトウェアで使用する検索と置換に似ています。したがって、マクロを使用してコード内で定数を表現する場合、最終的には即値が使用され、その量の種類が明確に指定されません。

const 部分
定数定義の形式は次のとおりです:
const データ型定数名 = 定数値;
const で定義された定数にはデータ型があり、データ型を定義するコンパイラでのデータ チェックが容易になります。エラーが発生した場合のトラブルシューティングが可能です。定数は最初に値を指定する必要があり、その後のコードではこの定数の値を変更することはできません。

2 つの違い:
メモリ空間の割り当て。 define がマクロを定義する場合、メモリ領域は割り当てられず、コンパイル時に main 関数内で置き換えられます。型やステートメント構造などのチェックは行われません。つまり、マクロ定義定数です。 #define null 0 などの単なる配置です。null に遭遇すると、コンパイラは常に null を 0 に置き換えます (質問がある場合は、C 言語の書籍の前処理の部分を参照してください)。または、MSDN を参照してください。const で定義された定数にはデータ型があります。データ型の定数を定義すると、コンパイラがデータをチェックし、プログラム内で発生する可能性のあるエラーをトラブルシューティングしやすくなります。したがって、const と define の違いは、const を使用して定数を定義すると、セキュリティ上の不安がなくなることです。プログラム間で定義します どこからでもアクセスできます

const はクラス名でのみアクセスでき、変更できません。 PHP5 には、オブジェクト指向の考え方が数多く追加されています。ここでは、PHP5 の static キーワードと const キーワードの機能について説明します。 PHP5 を学習している友人に役立ちます。

(1) クラス内の static キーワードは、static の後のメンバーはクラスに属し、どのオブジェクト インスタンスにも属さないため、外部アクセスを制限できることを示します。他のクラスからはアクセスできず、クラスのインスタンスとのみ共有されます。これにより、プログラムは、グローバル変数と同様に、クラスのすべてのインスタンスで共有できるようになります。グローバル関数と同様に、クラスの静的メソッドにも同じことが当てはまります。さらに、self を使用してアクセスする必要があります。これを使用すると、エラーが発生します。 constconst は、定数を定義するキーワードです。 C の #define に似ています。プログラム内でその値を変更すると、エラーが表示されます。


コードをコピーします。 コードは次のとおりです。 : class Counter
{
private static $count = 0;//静的プロパティを定義します
const VERSION = 2.0 ;//定数を定義します
//コンストラクター
function __construct()
{
self::$count++;
}
//デストラクター
function __destruct()
{
self::$count--;
}
//静的メソッドを定義する
static function getCount()
{
return self:: $count;
}
}
//インスタンスを作成します
$c = new Counter();
//印刷を実行します
print(Counter::getCount(). "
n" );静的メソッド Counter::getCount にアクセスするための直接入力クラス名
//クラスのバージョンを出力します
print( "Version used: " .Counter ::VERSION. "
n" );

www.bkjia.com本当http://www.bkjia.com/PHPjc/327646.html技術記事定義部分: マクロは、定数値を置換するだけでなく、式やコード セグメントを置換するためにも使用できます。 (マクロはとても強力ですが、間違いやすいので一長一短あります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート