对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。php8通过伪变量“$this>”和操作符“::”来实现这些功能。
1.伪变量“$this->”
在通过对象名->方法调用对象的方法时,如果不知道对象的名称,而又想调用类中的方法,就要用伪变量“$this->”。伪变量“$this->”的意思就是本身,成员方法属于哪个对象,$this 引用就代表哪个对象,主要作用是专门完成对象内部成员之间的访问。
使用伪变量“$this->”参考代码:
class myexample {
function fun(){ //定义成员方法
if(isset($this)){ //判断变量$this是否存在
echo "变量\$this的值是:".get_class($this); //如果存在则输出$this所属类名
}else{
echo "变量\$this不存在!";
}
}
}
$myexam=new myexample(); //类的实例化
$myexam->fun(); //类的实例化并传递参数
?>
以上代码在PHP8中的运行结果如下:
变量$this的值是:myexample
2、操作符“::”
操作符“::”可以在没有任何声明实例的情况下访问类中的成员,语法格式如下:
关键字::变量名/常量名/方法名
其中关键字主要包括parent、self和类名 3种。
(1)、parent关键字:表示可以调用父类中的成员变量、常量和成员方法。
(2)、self关键字:表示可以调用当前类中的常量和静态成员。
(3)、类名关键字:表示可以调用本类中的常量、变量和方法。
使用操作符“::”参考代码:
class Fruit {
const NAME="水果"; //定义常量NAME
function __construct(){ //定义构造方法
echo "本商城销量最高的商品类别是:".Fruit::NAME.""; //输出常量的默认值
}
}
class MyFruit extends Fruit { //定义Fruit类的子类
const NAME="葡萄"; //定义常量NAME
function __construct() //定义子类的构造方法
{
parent::__construct(); //调用父类的构造方法
echo "水果中销量最高的是:".self::NAME." "; //输出本类的常量NAME
}
}
$f=new MyFruit(); //类的实例化
?>
以上代码在PHP8中的运行结果如下:
本商城销量最高的商品类别是:水果
水果中销量最高的是:葡萄
到此为止,对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。PHP8通过伪变量“$this>”和操作符“::”来实现这些功能就讲解完毕了。
领取专属 10元无门槛券
私享最新 技术干货