PHP学习记录 类的范围解析符-父类中被覆盖的方法如何访问!

每天学习PHP 进步一点点,文章不是技术讲解类文章,只是我学习PHP的纪录,不喜勿喷,各位转载请标明出处。

PHP类中的范围解析符 是什么? 其实就是两个冒号 ::
范围 解析符的 具体格式: 类名称::类的常量名称 (注意 符号 要用半角的英文哦)。

边操作边记录吧 上代码 !!!

<?php
header('content-Type:text/html;charset=ytf-8');

class people{
	public $name;
	public $sex;
	public $iq;
	public $blog;
	const DIZHI='地球';
	public function say($food){
		echo "{$this->name}在吃{$food}";

}
//我们尝试用范围解析符 来访问一下 类的常量
//首先尝试以下 类外部 对类常量的访问
//在外部访问类常量  不用new 我们直接输出

}
echo people::DIZHI;// 成功 输出了“地球”;
//这就是 范围解析符的  其中一个用法
//下面我们来看看  类的内部 如何 使用 范围 解析符吧。
?>

我们再来 一段PHP代码

<?php
header('content-Type:text/html;charset=ytf-8');

class people{
	public $name;
	public $sex;
	public $iq;
	public $blog;
	const DIZHI='地球';
	public function say($food){
		echo "{$this->name}在吃{$food}";
		// 这里我们在类的内部使用一下范围解析符
		//这里的self 代表 当前类,可以防止 在类名称更换后出现报错的情况。
		//self的语法  同样是 self::类名称
		echo '我来自'.self::DIZHI;

}

}
$xiaoxin=new people();
$xiaoxin->name='小新';
$xiaoxin->bolg='dir321.com';
$xiaoxin->say('苹果');
//这里 输出了:小新在吃苹果 我来自地球
?>

下面我们在来看看 self 在子类中 访问 常量的 几种情况。

<?php
header('content-Type:text/html;charset=ytf-8');

class people{
	public $name;
	public $sex;
	public $iq;
	public $blog;
	const DIZHI='地球';
	public function say($food){
		echo "{$this->name}在吃{$food}";

}

}
class child extends people{
	public function jieshao(){
	//这里我们 使用 self 调用当前类的常量,但是我们并没有在子类中 设置常量,确实自动调用了父类中的常量。
	//但如果在子类中 设置了常量,还是用self 就会调用 子类中的常规,因此子类设置了常量,如果要调用父类中的常量,就有应该使用 父类名称::常量名。或是 使用parent
	echo '我来自'.self::DIZHI;
}
}
//这里我们用chila 集成了 people这个类,我们来看看 如何访问 父类中的常量。
$xiaoxin=new child();
$xiaoxin->name='小新';
$xiaoxin->say('苹果');
$xiaoxin->jieshao();
//成功输出:小新在吃苹果我来自地球
?>
<?php
header('content-Type:text/html;charset=utf-8');
class people{
	public $name;
	public function say($food){
	echo "{$this->name}正在吃{$food}";
}
}
class child extends people{
	//这里我们继承并重写方法
	public function say($food){
	parent::say($food);
	echo "{$this->name}正在疯狂的吃{$food}";
}

}
//这里我们 看看如何 访问父类中已经被重写的方法。
$xiaoxin=new child();
$xiaoxin->name='小新';
$xiaoxin->say('苹果');
//写到这里我们运行会发现:小新正在吃苹果(父类的方法 也重新调用了因为我们在子类的方法中 使用了parent 调用了 父类的方法) 小新正在疯狂的吃苹果。
?>

写的有点乱,哈哈哈哈 , 在这里 总结一下 重点吧
★★★ 范围解析符号 :: 注意要用英文写,我这里为了看的清楚用了中文的冒号。不要直接复制使用哦 会报错。
★★★ 访问当前类的常量 self::常量名称
★★★ 在子类中 对父类的常量进行了 重写后,如果想要访问父类中的常量,可以使用 parent::常量名称,来访问 父类中的常量。同时parent可以用于被覆盖的方法,格式为:parent::方法名称();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值