>  기사  >  백엔드 개발  >  PHP 객체 지향 (1)

PHP 객체 지향 (1)

WBOY
WBOY원래의
2016-08-08 09:19:23847검색

1. 검토: 이전 기사에서는 PHP Advanced의 필터에 대해 배웠습니다.

2. 이번 기사부터는 PHP - object-에 대해 알아봅니다. 지향

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) 通常方法所属于对象,但也可以是另一个对象,如果该方法是从第二个对象内静态调用的话

3.3 $this 사용

 

$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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.