TEST::name()>
(1): new キーワードを使用してインスタンス化します。 上記の $test は、TEST クラスをインスタンス化することによって生成されるオブジェクトであり、$test オブジェクトの name メソッドと呼ばれます。
(2): new キーワードを使用してクラスを使用する場合、$this を使用してクラス自体を参照できます。
(3): 「::」記号を使用するための前提条件は、メソッドに static キーワードが必要であることです。 new キーワードを使用する場合、呼び出されるメソッドには public キーワードが必要です (メソッドに public、protected がない場合)。 、プライベートのキーワードはデフォルトでパブリックになります)
(4): new キーワードを使用して同じクラスを複数の異なるオブジェクトにインスタンス化できますが、それらは互いに分離されます。「::」記号を使用すると、メソッドが共有されます。複数の使用の間:
PHP コード
コードをコピー コードは次のとおりです:
class TEST1
{
public $name = 0 ; L パブリック関数名 () {
$ this-& gt; name = $ this-& gt;
}} $ test1 = 新しい test1;
$ test1 -& gt; // $name1 == 1
$test2->name(); //$name1 == 1
/*----- -------- ----------------* / Class Test2 {
public static $ name = 0; / $name = = 2
?>
クラス間の関係:
クラス間の関係、主に抽象化、インターフェース、継承:
PHPコード
コードをコピー
コードは以下の通りです:
}
class TEST2 extends TEST1implements TEST3 // 継承
{
public function name1( )
?>
(1) abstract キーワードを持つクラスは抽象クラスであり、abstract キーワードを持つメソッドは抽象クラス内の抽象メソッドをサブクラスでオーバーライドする必要があります。
(2) インターフェース キーワードを持つクラスはインターフェースです。インターフェース内のすべてのメソッドはサブクラスでオーバーライドされる必要があります。
(3) classA extends classB または classAimplements classB という単語が付いているものは継承であり、extends は別のクラスを継承することを意味し、implements は一度に 1 つのクラスのみを拡張できますが、複数のインターフェースを実装できます。
(4) 抽象クラス、インターフェイス、および最終的に継承および実装されたメソッドはパブリックである必要があります。
継承プロセス中に、サブクラスは同じ名前の親クラスのメソッドを上書きします。このとき、サブクラスで親クラスのメソッドを呼び出す必要がある場合は、parent キーワードまたはクラスを使用できます。名前と呼び出す「::」記号:
PHP コード
コードをコピー コードは次のとおりです:
class TEST1 extends TEST2
{
public function name()
{ :name2();
}
}
class TEST2
{
public function name2()
{
echo 'value2'; > もう 1 つは、self、parent、クラス名を使用してクラス内に便利な呼び出しチャネルを確立することです。
オブジェクト間の関係は主に「==等しい」、「===すべて等しい、等しくない、clone:
PHPコード
class TEST
{
public function name( )
」 }
}
}
$test1 = 新しいテスト;
$test3 = $test1; // true : false; $test3 ? true : false; // true
echo $test2 == $test3 ? // true
echo $test1 === false; $test3 ? true : false; // true
echo $test2 === $test3 ? true : false
(1) 2 つのクラスが同じ属性とメソッドを持っている限り、 「==」は等しい。
(2) 「===」と等しくなるには、2 つのクラスが同じオブジェクトを指している必要があります。
clone は特殊です。上記の例では、$test3 = $test1 のプロセスは $test3 に $test1 オブジェクトのコピーを与えませんが、$To のコピーを取得する必要がある場合は、$test3 が $test1 を指すようにします。 test1 をコピーするには、clone キーワードを使用する必要があります:
PHP コード
コードをコピー
コードは次のとおりです:
$test3 = clone $test1?>
クラスのフック:
__autoload:
は関数名であり、オブジェクトをインスタンス化するときにクラスがプリロードされていない場合にこのフックが呼び出されます。
__construct
クラスがインスタンス化されるとき、呼び出されるフックはいくつかの初期化操作を実行できます。
__destruct
クラスが破棄されるときに呼び出されるフック。
__call
オブジェクトが存在しないメソッドを呼び出そうとしたときに呼び出されるフック
__sleep
serialize() 関数を使用してクラスに対してシリアル操作を実行する場合、このフックは
__wakeup
と呼ばれます使用時 unserialize() 関数がクラスを逆シリアル化するとき、このフックが呼び出されます
__toString
オブジェクトが文字列に変換されるとき、このフックが呼び出されます (echo など)
__set_state
When When the var_export( ) クラスを操作するために関数が呼び出される場合、このフックは
__clone になります
clone キーワードを使用してクラスをコピーする場合、このフックは呼び出されます
__get
クラス内の属性値を取得する場合、このフックは
__set のときに呼び出される
__isset クラスで属性値を設定するとき、このフックが呼び出されます
isset() 関数を使用してクラスの属性値を決定するとき、このフックが呼び出されます
__unset
When unset() 関数を使用して属性値を破棄すると、このフックが呼び出されます
クラスに関するヒント:
クラスをインスタンス化するとき、このフォームを使用して __construct フックにパラメーターを渡すことができます:エコー $ para; Echo $para; = new TEST('value'); // 表示値
foreach() 関数は、クラスまたはオブジェクト内の属性を走査するために使用できます。 、および private が最初に状況に応じて判断されます:
PHP コード
コードをコピー
コードは次のとおりです:
class TEST
{ public $property1 = 'value1 ';
public $property2 = 'value2';
public function name()
{
Print "$key => $valuen";
$test = new TEST; gt;name();
?>
クラス内のメソッドにパラメータを渡すとき、ここでは配列とオブジェクトの判定のみがサポートされています:
PHP コード コードをコピー
コードは次のとおりです:
クラス TEST1
{
パブリック関数名(TEST2 $para)
}
}
クラス TEST2
{
}
$test2 = 新しい TEST2;
$test1 = 新しいテスト1 ; >
php4 構文との互換性:
PHP5 クラスは php4 との下位互換性があります。これらの php4 時代の構文も継承されていますが、php5 環境での使用は推奨されません。
(1) var デフォルト属性を使用します。これは自動的に public に変換されます。
(2) クラス名をコンストラクターとして使用する __construct コンストラクターがない場合は、クラスと同じ名前の関数をコンストラクターとして検索します。
http://www.bkjia.com/PHPjc/318761.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/318761.html技術記事次のようにコードをコピーします。 ?php classTEST { constNAME='value';//Constant public$name='value';//Attribute publicfunctionname()//Method { echo'value'; } ?そしてその方法は…