PHP オブジェクト指向の学習ノートの 1 つの基本概念

WBOY
リリース: 2016-06-13 11:57:39
オリジナル
913 人が閲覧しました

1> if( "false" ) は空でない文字列が true であるため、 if( true) と同等です
2> データ型を確認します:
is_object(); >is_string ();
is_integer();
3> PHP では、メソッドのパラメーターの型を制約するために使用されます。データ型、ただしクラス): 制約する必要があるメソッド パラメーターの前にクラス名を置きます。
例: function write( ShopProduct $shopProduct){}

4> 演算子:左のオペランドのオブジェクトが右のオペランドです。 示されている型、結果は true
例: if( $shopProduct instanceof BookProduct ) {}

5> Inherit class Son extendsparent{}
コンストラクターなどの親クラスのメソッドを呼び出すには、

6> 静的メソッドとプロパティ
class StaticExample{
static public $a; を使用します。 >static public function hello(){}
}
外部アクセスは次を使用します::
例: print StaticExample::$a;
内部アクセスは self::
例: self ::$a;

7> 抽象クラス、抽象メソッド
抽象クラス xxx{
...
抽象関数 write(); //いいえ {}
}

抽象クラスのサブクラスはメソッドと実装を再宣言する必要があります。新しく実装されたメソッドのアクセス制御は、

8> が定義するインターフェイス インターフェイスよりも厳密にすることはできません。インターフェイスには属性とメソッドの宣言を含めることができます。ただし、メソッド本体は空です。例:interface a{
public function b();
Any class;インターフェイスを実装するクラスは、インターフェイス内で定義されたすべてのメソッドを実装する必要があります。それ以外の場合は、抽象クラスでなければなりません。
クラスは、インターフェイスを実装するために宣言内でimplementsを使用します。 ){
...
}
}

9> 例外
PHP5 は例外クラス

10> を導入します インターセプター
__get; ); 未定義のプロパティにアクセスするときに呼び出されます
__set($property ,$value); 未定義のプロパティに値を割り当てるときに呼び出されます
__isset($property); 未定義のプロパティに isset() を使用するときに呼び出されます。 🎜>__unset($property); 未定義のプロパティに対して呼び出されます unset() が呼び出されたときに呼び出されます;
__call($method, $arg_array); 例: __get() の実装



コードをコピーします

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


function __get($property){
$method=" get{$property}";
if(method_exists($this ,$method)){
return $this->$method();

} } function getName(){ return "ボブ";}

function __isset($property){

$method="get{$porterty}";
return(method_exists($this, $method) ));
}

関数 __set( $property, $value){
$method="set{$property}"; ){
return $this->$method($value ; 🎜>class CopyMe();
$first= new CopyMe();
$second=$first;
// PHP4 : $first と $sec は 2 つの完全に異なるオブジェクトです;
// PHP5: $first と $second は同じオブジェクトを指します
PHP5 では、オブジェクトの割り当てと転送は参照です
$next= clone $first; //$first と $second は 2 つの完全に異なるオブジェクトです (by_value copy)
コピーを制御したい場合は、特別なメソッド __clone() を実装する必要があります。

13> 自動ロード: __autoload()
PHP5 では、クラス ファイルを自動的にインクルードする __autoload() インターセプター メソッドが導入され、不明なクラスをインスタンス化しようとする操作が発生すると、 __autoload() メソッドを使用し、クラス名を文字列パラメーターとして渡します。
非常に単純な自動配置および包含戦略の例:
function __autoload( $classname){
include_once "$classname.php ";
}

== ==================
14>14>文字列を使用してクラスを動的に参照します



コードをコピーします

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


$classname="Task"
require_once("tasks/{$classname}.php);
$myObj= new $classname();
$method(); //動的メソッド


15>関数とオブジェクト function



コードをコピー

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

class_exist() //クラスが存在するかどうかを確認します。 get_declared_classes(); //現在のスクリプトプロセスで定義されているすべてのクラスを取得します(配列形式で返されます) get_class_methods();//クラス内のすべてのパブリックメソッドのリスト(配列) method_exist($ objname,$method); // オブジェクトまたはクラスのメソッドが存在するかどうか

is_callable() ;// オブジェクトまたはクラスのメソッドは存在するだけでなく、アクセス可能です

get_class_vars() // 属性
get_parent_class (クラスまたはオブジェクト名); // 親クラス
is_subclass_of(); // 子クラスであるかどうかに関係なく、インターフェイスは instanceof 演算子を使用します


16 > リフレクション API
は、プロパティ、メソッド、クラス、パラメーターを分析できる一連の組み込みクラスで構成され、動的に情報を取得し、動的にメソッドを呼び出すことができます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート