ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向学習ノート 1 基本概念_PHP チュートリアル

PHP オブジェクト指向学習ノート 1 基本概念_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:15:50742ブラウズ

1> if( "false" ) は空でない文字列が true であるため、 if( true) と同等です。
is_array();
is_string(); );
is_integer();
3> PHP5 では、メソッドのパラメーターの型 (基本的なデータ型ではなく、クラス) を制約するために使用されるクラス型ヒント (型ヒント) が導入されています。制約する必要があるパラメータ
例: function write( ShopProduct $shopProduct){}

4>instanceof 演算子: 左のオペランドのオブジェクトが右のオペランドで示される型である場合、結果は true になります
例: if( $shopProductinstanceof BookProduct ) {}

5> クラスの Son extends を継承します。{}
コンストラクタなどの親クラスのメソッドを呼び出すには、parent::__construct() を使用します

6> StaticExample{
static public $a;
static public function hello(){}
}
外部アクセスは次のように使用します::
例: print StaticExample::$a;
内部アクセスは self:: を使用します
例: self:: $a;

7> 抽象クラス、抽象メソッド
abstract class xxx{
...
abstract function write(); //No {}
}

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

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

9> 例外クラス

10> を導入します。 property); 未定義のプロパティにアクセスするときに呼び出されます
__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}";メソッド));
}

関数 __set($property, $value){
$method="set{$property}";
if(method_exists($this,$method)){
return $this-> $method($value);

11> __clone() と clone キーワード
$first= new CopyMe();
$second=$first;
// PHP4: $first と $ Second は 2 つの完全に異なるオブジェクトです
// PHP5: $first と $second は同じオブジェクトを指します
PHP5 では、オブジェクトの割り当てとtransfer は参照です。
コピーしたい場合は、次を使用します。 $first= clone $ first; // $first と $second は 2 つの完全に異なるオブジェクトです (by_value copy)
コピーを制御したい場合は、次のように実装する必要があります。特別なメソッド __clone()

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



コードをコピーします

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


$ classname="タスク";
require_once("tasks/{$classname}.php);
$ myObj= new $classname();
$method="getTitle";
$myObj->$method(); / /動的メソッド


15>クラス関数とオブジェクト関数



コードをコピー

コードは次のとおりです:
class_exist() //クラスが存在するかどうかを確認します get_declared_classes(); //定義されているすべてのクラスを取得します。現在のスクリプト プロセス内 (配列形式で返されます) get_class_methods(); // クラス内のすべてのパブリック メソッドのリスト (配列)
method_exist($objname,$method) // オブジェクトまたはクラスのメソッドが存在するかどうか
is_callable(); // オブジェクトまたはクラスのメソッドは存在するだけでなく、アクセスすることもできます
get_parent_class (クラスまたはオブジェクト名) // 親クラス
is_subclass_of();サブクラスかどうか、インターフェースに関係なく、インターフェースはinstanceof演算子を使用します


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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326065.html技術記事 1 if( "false" ) は、空でない文字列が true であるため、 if( true) と同等です。 2 データ型を確認します。 is_array(); is_string(); PHP5 によって導入されたクラスの型ヒント...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。