ホームページ  >  記事  >  バックエンド開発  >  PHP の static、const、define の違いを直接見てみる

PHP の static、const、define の違いを直接見てみる

coldplay.xixi
coldplay.xixi転載
2020-08-12 17:19:252669ブラウズ

PHP の static、const、define の違いを直接見てみる

パーツの定義:
マクロは置換するだけではありません定数値 は、式やコード スニペットの置換にも使用できます。 (マクロの機能は非常に強力ですが、エラーが発生しやすいため、賛否両論がかなり分かれています。)
マクロの構文は次のとおりです。
#マクロ名マクロを定義します。 value
としての値 マクロ名にはすべて大文字を使用することが推奨されており、プログラマの間では一般的な習慣となっています。

関連する学習の推奨事項: php プログラミング (ビデオ)

##マクロを使用する利点:
1 ) コードをより簡潔かつ明確にします

もちろん、これはマクロに適切な名前を付けるかどうかによって異なります。一般に、マクロ名は明確かつ直感的な意味を持つ必要があり、場合によっては長い方がよい場合もあります。

2) コードのメンテナンスを容易にする
コンパイル プロセスにおけるマクロの処理は「前処理」と呼ばれます。つまり、正式なコンパイルの前に、コンパイラはまず、コード内に出現するマクロを対応するマクロ値に置き換える必要があります。このプロセスは、皆さんや私がワープロ ソフトウェアで使用する検索と置換に似ています。したがって、マクロを使用してコード内で定数を表現する場合、最終的には即値が使用され、その量の種類が明確に指定されません。
const 部分

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

メモリ空間の割り当て。 define がマクロを定義する場合、メモリ空間は割り当てられません。コンパイル時に main 関数内で置き換えられます。型、文の構造などのチェックは行われず、単純に置き換えられます。つまり、マクロ定義定数です。は単なる純粋な配置です。関係、

#define null 0 など。null に遭遇すると、コンパイラは常に null を 0 に置き換えます。データ型はありません。ご不明な点がございましたら、前処理をご覧ください。 C 言語の本の一部を参照するか、MSDN を参照してください。および const 定義された定数にはデータ型があります。データ型を定義する定数により、コンパイラーはデータをチェックし、プログラム内で発生する可能性のあるエラーのトラブルシューティングが容易になります。したがって、const と define の違いは、const であるということです。定義された定数により、プログラム間の安全性の問題が解消されます。

define は、どこからでもアクセスできるグローバル定数を定義します。const は、クラス メンバー変数の定義に使用されます。クラス名でのみアクセスでき、変更できません。 PHP5 には多くのオブジェクト指向機能が追加されています。PHP5 のオブジェクト指向の考え方は Java のオブジェクト指向の考え方に近いです。ここでは、PHP5 を学習している友人の役に立つことを願って、PHP5 の static キーワードと const キーワードの機能について説明します。

(1) クラスの staticstatic キーワードは、メンバーが静的であることを示します。static の後のメンバーはクラスに属し、どのオブジェクト インスタンスにも属さないため、static は外部アクセスを制限できます。他のクラスにはアクセスできず、そのクラスのインスタンスのみが共有されるため、プログラムはメンバーを全力で保護します。クラスの静的変数はグローバル変数に非常に似ており、クラスのすべてのインスタンスで共有できます。グローバル関数と同様、クラスの静的メソッドにも同じことが当てはまります。クラスの静的メソッドは、クラスの静的プロパティにアクセスできます。また、静的メンバーには self を使用してアクセスする必要があるため、これを使用するとエラーが発生します。

(2) constconst は、C の #define と同様に定数を定義するキーワードで、定数を定義できますが、プログラム中で値を変更するとエラーとなります。上記のコードの例を示します:

コードは次のとおりです:

<?php 
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(). "<br>\n" ); //使用直接输入类名来访问静态方法Counter::getCount 
//打印类的版本 
print( "Version useed: " .Counter::VERSION. "<br>\n" ); 
?>

関連する推奨事項:

プログラミング ビデオ コース

以上がPHP の static、const、define の違いを直接見てみるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。