1. 復習: 前回の記事では、PHP Advanced のフィルターについて学習しました
2. この記事からは、PHP - オブジェクト指向について学習します
3. オブジェクト指向
3.1
(1)php5 引入了新的对象模型 (object model),重写了php的处理对象方式,允许更加的性能 (2)新特性包括:可见性,抽象类和final类,类方法,魔术方法,接口,对象克隆和类型提示 (3)php对象是按引用传递的,即每个包含对象的变量都持有对象的引用(reference),而不是整个对象的拷贝
3.2基本概念
<pre class="brush:php;toolbar:false"> (1) 关键字 class开头,后面跟着类名,可以是任何非php保留字的名字 (2) 包含类成员和方法的定义 (3) 伪变量$this 可以在当一个方法在对象内调用时使用。 (4) $this是一个到调用对象的引用 (5) 通常方法所属于对象,但也可以是另一个对象,如果该方法是从第二个对象内静态调用的话
$this的使用 class one{ function oneFun(){ if(isset($this)){ echo '$this 的定义是 ('; echo get_class($this); echo ')'; }else{ echo '$this 没有定义'; } } } class two{ function twoFun(){ one::oneFun(); } } $a =new one(); $a->oneFun(); //结果:$this 的定义是 (one) one::oneFun();//结果:$this 没有定义 $b=new two(); $b->twoFun(); //结果:$this 的定义是 (two) two::twoFun();//结果:$this 没有定义
3.4. 単純なクラス定義
class aclass{ //成员变量 public $var="我是成员变量"; public $t1="我是t1"; //成员函数/方法 public function displayVar(){ echo "<br>"; echo $this->var; echo $this->t1; } }
3.5 新しいキーワード
(1) オブジェクトインスタンスを作成するとき、新しいオブジェクトを作成する必要があります。変数に割り当てられます
(2)每次创建新对象时,该对象总是被赋值,除非构函数出错
//调用 $c=new aclass(); $c->displayvar();
3.6 オブジェクトの割り当て
オブジェクトのインスタンスを新しい変数に割り当てると、新しい変数は同じインスタンスにアクセスします
#当把一个对象已经创建的实例赋值给新变量的时候,新变量会访问同一个实例 $d=$c; $e =& $c; $c->var='$d 有这个值'; $c=NULL; echo "<br>"; var_dump($c); //结果:NULL var_dump($d); //结果:object(aclass)#3 (2) { ["var"]=> string(15) "$d 有这个值" ["t1"]=> string(8) "我是t1" } var_dump($e); //结果:NULL
著作権表示: この記事はブロガーによるオリジナル記事であり、ブロガーの許可なく複製することはできません。
以上、php オブジェクト指向 (1) について内容の側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。