PHP类常量和接口常量的比较

客官,留下你的赞;成为我的粉丝,一起上车哦!评论区欢迎你的留言

GitHub代码案例下载

PHP类常量和接口常量的区别

两者的使用上是一样的,只是接口常量不能被子类或者子接口覆盖

PHP类常量的使用

父类和子类可定义名称一样的常量,两者相互不影响

<?php
/**
 * PHP类常量
 * @author new1024kb
 * @since  2019-12-23
 */

//父类
class Student {
	const NAME = 'new1024kb';
}
echo Student::NAME;   //输出:new2014kb

//子类
class Sunny extends Student {
	const NAME = 'sunny new1024kb';
}
echo Sunny::NAME;    //输出:sunny new1024kb

接口常量的使用

  1. 输出接口中的常量
<?php
/**
 * PHP接口常量
 * @author  new1024kb
 * @since  2019-12-23
 */

interface Student {
	const NAME = 'new1024kb';
}

echo Student::NAME; //输出1024kb
  1. implements实现接口(‘子类’不能覆盖接口中的常量)
<?php
/**
 * PHP接口常量
 * @author  new1024kb
 * @since  2019-12-23
 */
interface Student {
	const NAME = 'new1024kb';
}

//Sunny类实现Student接口
class Sunny implements Student {
	const NAME = 'sunny new1024kb';
}
/**
* 报错信息:
* Fatal error: Cannot inherit previously-inherited 
* or override constant NAME from interface Student
*/
  1. extends继承父类接口,子类接口不能覆盖父类接口中的常量
<?php
/**
 * PHP接口常量
 * @author  new1024kb
 * @since  2019-12-23
 */

interface Student {
	const NAME = 'new1024kb';
}

//子接口Monitor继承父接口Student
interface Monitor extends Student {
	const NAME = 'monitor new1024kb';
}
/**
 * 报错信息:
 * Fatal error: Cannot inherit previously-inherited 
 * or override constant NAME from interface Student
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值