类可以有常量、属性(也就是变量)、方法(也就是函数)
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;
}
}