私の学習中に書いた PHP クラスとオブジェクトの学習ノートです。このチュートリアルがクラスとオブジェクトの学習に役立つことを願っています。
個人的なメモ…参考までに、間違いがあればご指摘ください、よろしくお願いします
コードは次のとおりです |
コードをコピー |
/*********************************************
クラスオブジェクトインスタンスの説明(通常クラス)
******************************************/
クラス ClassDemo{
パブリック $PublicVar;
private $PrivateVar;//プライベート変数は外部から呼び出すことはできません
protected $ProtectedVar;//保護された変数は外部およびサブクラスからアクセスできません
public static $StaticVar=0;//static static 変数 静的メソッドは非静的メソッドと変数にアクセスできませんが、非静的メソッドと変数は静的メソッドと変数にアクセスできます
const constVar='';//変更したくないプロパティがある場合は、クラス名::定数インターフェース名::定数を使用して、const を使用して定数にすることを検討してください。
/*
1. 定数は定義時に初期値を割り当てる必要があります
2. 定数は変更できません
3. 定数名には $ を含めることはできません。通常は大文字で、デフォルトは public です
4. 定数はクラス self::定数の名前 classname::定数の名前 内で使用されます
*/
public function __construct( /*$name*/ ){//これはパラメータを取得できます。パラメータを取得した後、作成時にパラメータも取得する必要があります。そうしないとエラーが発生します
//$this->PublicVar=$name;
//self::$StaticVar++;//静的変数の内部アクセス方法 外部アクセス方法 オブジェクト名::変数名(ClassDemo::$StaticVar)
$this->PublicVar='$PublicVar';
$this->PrivateVar='$PrivateVar';
$this->ProtectedVar='$ProtectedVar';
self::$StaticVar++;
echo "ClassDemo __construct ";
}
パブリック関数 __destruct(){//デストラクター
}
最終的なパブリック関数 fun(){
/*
最終キーワード (PHP5 で登場)
メソッドを継承するときに他のクラスによって上書きされたくない場合は、final を使用できます
このキーワードを使用してクラスを変更すると、そのクラスは他のクラスに継承されなくなります(インスタンス化できます)
注: このキーワードは変数の変更には使用できません
*/
}
}//授業終了
/*********************************************
クラスオブジェクトインスタンスの説明(抽象クラス)
******************************************/
抽象クラス AbstractDemo{
/***************************************
1. 抽象クラスはインスタンス化できません
2. 抽象クラスには、必ずしも抽象メソッドが含まれるわけではありません。
言い換えれば、抽象クラスは抽象メソッドを持つことができません
3. 抽象メソッドが組み込まれたら、クラスは次のことを行う必要があります
抽象として宣言されました
4. 抽象クラスは関数本体を持つことができません
5. クラスが抽象クラスを継承する場合、それを実装する必要があります
この抽象クラスのすべての抽象メソッド。 (それ自体が抽象クラスとしても宣言されていない限り)
***************************************/
}
/*********************************************
クラスオブジェクトインスタンスの説明(継承クラス)
******************************************/
class DemoTwo は ClassDemo{ を拡張します
}
/*********************************************
クラスオブジェクトインスタンスの説明(インターフェース)
******************************************/
インターフェースフェイス{
/************************************
1. クラスがインターフェースを実装する場合、クラスはこのインターフェースのすべてのメソッドを実装する必要があります
2. インターフェースメソッドはメソッド本体を持つことができません
3. インターフェースをインスタンス化できません
4. インターフェースには属性を含めることができますが、それらは定数でパブリックである必要があります
インターフェースを使用する場合
1. 基準を設定する
2. 仕様を設定し、他のプログラマに次のように実装させます。
************************************/
パブリック関数 Name();
}
インターフェイス Face2 は Face{ を拡張します
/***********************************
継承されたインターフェイス
インターフェースを継承する場合、親インターフェースのメソッドを実装する必要はありません
*******************************/
const namevar=20;
}
クラスのデモは Face2 を実装します{
/***********************************
インターフェースの実装では、複数のインターフェースを同時に実装できます
クラスが特定のインターフェースを実装する場合、すべてのインターフェースのメソッドを実装する必要があります
*********************************/
パブリック $Name1=0;
パブリック関数 Name(){
echo Face2::namevar;
}
}
?>
|
概要
クラス内の静的メンバーのプロパティまたはメソッドにアクセスするには、次のように self:: ($slef ではないことに注意) を使用します。
コードは次のとおりです
| コードをコピー
|
slef::$country
slef::my Country()
|
親クラスの静的メンバーのプロパティまたはサブクラスのメソッドにアクセスするには、次のように、parent:: ($parent ではないことに注意) を使用します。
コードは次のとおりです
コードをコピー |
|
親:: $country
親:: my Country()
|
静的メンバーのプロパティとメソッドへの外部アクセスは、クラス名/サブクラス名:: (例:
)
コードは次のとおりです
コードをコピー |
|
人::$国
人::私の国()
学生::$国
|
ただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。
•クラス/オブジェクト関数
•__autoload — 未定義のクラスのロードを試みます
•call_user_method_array — パラメーターの配列を渡してユーザー メソッドを呼び出します (非推奨)
•call_user_method — 特定のオブジェクトのユーザー メソッドを呼び出します (非推奨)
•class_alias — クラスのエイリアスを作成します
•class_exists — クラスが定義されているかどうかを確認します
•get_called_class — 「Late Static Binding」クラスの名前
•get_class_methods — クラスメソッド名で構成される配列を返します
•get_class_vars — クラスのデフォルト属性で構成される配列を返します
•get_class — オブジェクトのクラス名を返します
•get_declared_classes — 定義されたクラスの名前で構成される配列を返します
•get_declared_interfaces — 宣言されたすべてのインターフェースを含む配列を返します
•get_declared_traits — 定義されたすべての特性の配列を返します
•get_object_vars — オブジェクトのプロパティから構成される連想配列を返します
•get_parent_class — オブジェクトまたはクラスの親クラス名を返します
•interface_exists — インターフェイスが定義されているかどうかを確認します
•is_a — オブジェクトがこのクラスに属している場合、またはこのクラスがこのオブジェクトの親クラスである場合に TRUE を返します
•is_subclass_of — このオブジェクトがこのクラスのサブクラスの場合は TRUE を返します
•method_exists — クラスメソッドが存在するかどうかを確認します
•property_exists — オブジェクトまたはクラスにプロパティがあるかどうかを確認します
•trait_exists — 指定された特性が存在するかどうかを確認します
http://www.bkjia.com/PHPjc/632631.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632631.html技術記事勉強中に PHP クラスとオブジェクトの学習メモを書きました。このチュートリアルがクラスとオブジェクトの学習に役立つことを願っています。 個人的なメモ...お借りします...