php 调用父类变量,PHP-通过实例化父类访问常量
首先输入一些代码…
FlashBagUtil类包含常量:
class FlashBagUtil
{
const TYPE_NOTICE = 'notice';
const TYPE_WARNING = 'warning';
const TYPE_ALERT = 'alert';
const LANG_EN = 'en';
const LANG_RU = 'ru';
const LANG_IL = 'il';
}
家长班:
class CoreController
{
public $flashUtil;
public function __construct()
{
$this->flashUtil = new FlashBagUtil;
}
}
子班:
class BatchController extends CoreController
{
public function indexAction()
{
// Method 1 - This works fine
$flash = $this->flashUtil;
$flashType = $flash::TYPE_NOTICE;
// Method 2 - This, obviously, does not
$flashType = $this->flashUtil::TYPE_NOTICE;
// Method 3 - Neither does this as $flashUtil is a non-static instantiated object
$flashType = self::$flashUtil::TYPE_NOTICE;
}
}
PHP文档states:不能使用实例化的类对象访问声明为static的属性(尽管可以使用static方法).
但是我似乎能够用第一种方法做到这一点.我想念什么?
在这种情况下,方法1是访问静态内容的唯一,最干净的方法吗?
解决方法:
您所引用的类constant与类变量(属性)不同,并且可被实例化对象访问.您正在引用的文档引用了用static关键字(即private static $flashUtil;)定义的类变量,如果您习惯于使用其他更严格类型的OOP语言进行编程,则可能会引起混淆.
标签:oop,php
来源: https://codeday.me/bug/20191121/2050672.html
php 调用父类变量,PHP-通过实例化父类访问常量相关推荐
- 子类重写父类变量_为什么在子类中不重写超类的实例变量
子类重写父类变量 当我们在父类和子类中创建一个具有相同名称的变量,并尝试使用持有子类对象的父类引用访问它时,我们会得到什么? 为了理解这一点,让我们考虑下面的示例,在该示例中,我们在Parent和Ch ...
- java根据父类找子类_在java中实现多态时,可以通过父类变量引用子类的对象。_学小易找答案...
[单选题]对于字符串s="java",下面哪个选项返回字符在字符串中'v'的位置( ). [简答题]汽车核保的主要内容 [判断题]在java中产生子类对象时,直接调用子类的构造方法 ...
- java子类和父类有相同成员_Java -- 父类和子类拥有同名的成员变量的情况
Java – 父类和子类拥有同名的成员变量取值情况 参考文章 结论: 当子类的成员变量与父类同名时,若对该成员变量进行操作的方法继承于父类,则改变和获取的是父类的成员变量.若对该成员变量进行操作的方法 ...
- 父类对象由子类实例化【转载】
这个涉及到对象的多态性. 父类对象由子类实例化,即是对象的多态性中的一种类型之一:向上转型 父类 父类对象=子类实例 意思就是说:我们是使用子类来实例化对象,而这个对象却是披上了"父类对象& ...
- Java中子类对象赋值给父类变量
1. 在Java中将一个字类对象赋值给父类变量是合法的,这也是实现多态(即方法的动态分派)的前提条件之一. 2. 在Java中父类赋值同样也适用于数组.可以将一个子类数组赋值给一个父类数组变量.但可能 ...
- python调用实例做父类_Python super() 调用父类方法, 但是父类中 self 并不是父类的实例而是子类的实例?...
慕慕森 说一下self究竟是什么. 写这个的时候也没查阅文档,有些说法可能不是很准确. 类方法的第一个参数self是实例本身,也就是A=X()这个A. In [1]: class A(object): ...
- php继承父类的关键字,php继承父类函数
Php 是单继承的 父类(基类)---子类(派生类)父类和子类就是一种继承的关系 子类可以从父类中继承所有的成员属性和成员方法(除了 private 类型成员的不能继承)...... 抽象类 为什么设 ...
- java调用方法的变量_JAVA类的方法调用和变量(全套)
一.类的分类: 1.普通类 2.抽象类(含有抽象方法的类) 3.静态类(不需要实例化,就可以使用的类) 二.方法的分类: 1.私有方法(只有类的内部才可以访问的方法) 2.保护方法(只有类的内部和该该 ...
- java 子类 父类 转换_Java子类与父类之间的类型转换
1.向上转换 父类的引用变量指向子类变量时,子类对象向父类对象向上转换.从子类向父类的转换不需要什么限制,只需直接蒋子类实例赋值给父类变量即可,这也是Java中多态的实现机制. 2.向下转换 在父类变 ...
最新文章
- 一文尽览!文本对抗攻击基础、前沿及相关资源
- 调整分区后盘符丢失的资料怎么寻回
- js判断对象是否是json对象
- PHP参数会被用作对象名
- struts2 Action获取表单数据
- kafka 异常:ERROR Failed to clean up log for __consumer_offsets-30 in dir /tmp/kafka-logs due to IOExce
- 极限挑战logo的制作教程
- 手写 Object.create
- linux命令——scp 两台linux机器间文件或目录传输
- SQL Server高级查询之T-SQL编程(存储过程)
- 苹果python环境依赖库,【强迫症系列】【mac】更改 Python 的 pip install 默认安装依赖路径...
- Java锁的种类以及辨析(三):阻塞锁
- IDEA快速生成测试用例类和完成单元测试
- cad高程测绘图lisp_CAD地形图高程信息快速提取的技术与实现
- c语言中obj的错误,C语言中的obj
- vue中局部过滤器和全局过滤器的使用
- JIRA 6.3.6 详细安装图解
- 基于SpringBoot下使用分布式文件存储FastDFS
- python提取cad中的文字_[python]提取PPT中的文字(包括图片中的文字)
- 科学史上最伟大的十位单身科学家
热门文章
- 直播课:5G来了,互联网百亿级创新的机遇在哪里?
- 用php写出显示客户端ip与服务器ip的代码.,PHP面试题答案
- Head First设计模式读书笔记四 简单工厂 工厂模式 抽象工厂模式
- 联想小新pro无法人脸识别自动开机的解决方法
- PyQt5学习笔记(一)PyQt5入门QLabel控件及使用
- 每天一个知识点:Python列表两个冒号加一个负数的表达方法
- bal插口_播放器上的这个“昂贵”的插口,是噱头还是真有用
- java常用网络协议_初识java网络编程
- Java基础02 位运算符<<、>>
- php代码执行漏洞,预警!!!PHP 远程代码执行漏洞