PHP 类和对象 —— 概念的理解(类,对象,伪变量$this,::class)

类可以有常量、属性(也就是变量)、方法(也就是函数)

1、类是面向对象的基本概念,就是对现实中某一种类的事物的抽象

比如手机可以抽象为一个类,具体属性有显示屏类型,显示屏帧率,处理器,内存规格,电池大小,快充功率,摄像头规格等。

可以有获取手机名称,打电话,玩游戏,看视频,聊天等操作方法。

class Phone{
    //声明属性
    $name = '手机';
    //声明方法
    function getPhoneName{     
         return $this->name;
    }              
}

2、类是一类事物的总称,比如手机,

对象是一类事物的一个具体事例,比如这部手机。

对象通过new关键字实例化

$phone = new Phone();//实例化一个手机对象

$phone->name = '魅族17 Pro';//给手机名称赋值

echo $phone->getPhoneName();//调用getPhoneName的方法

总结:类是抽象的概念,对象是具体的实例。

类使程序具有重用性,比如就是可以被其他类继承。

 

3、伪变量$this:类内部定义被调用

从对象上下文中也就是类内部调用方法时,伪变量$this可用。

$ this是对调用对象的引用(通常是该方法所属的对象,但如果从辅助对象的上下文中静态调用该方法,则可能是另一个对象)

class Phone{
    function foo(){
        if (isset($this)){
            echo '伪变量$this是'.get_class($this).'\n';           
        } else{
            echo '未定义伪变量$this\n';
        }
    }
}

class Meizu{
    function bar(){
        Phone::foo();
    }
}

$phone = new Phone();
$phone->foo();

Phone::foo();

$meizu = new Meizu();
$meizu->bar();

Meizu::bar();
PHP 5 输出以下内容:
    伪变量$this是Phone;
    未定义伪变量$this;
    伪变量$this是Phone;
    未定义伪变量$this;

PHP 7 输出以下内容弄:
    伪变量$this是Phone;
    未定义伪变量$this;
    未定义伪变量$this;//当从另一个Meizu类调用Phone类的伪变量$this时,伪变量$this会变成未定义。
    未定义伪变量$this;    
    

4.   ::class  可用于类名的解析,使用ClassName::class你可以获取类的完全名称,对使用命名空间命名的类特别有用。

<?php
    namespace NS{
        class ClassName{
             echo ClassName::class;   
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章