PHP中普通方法如何调用静态属性,php中的静态属性和静态方法如何调用
静态属性、方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性)。
(推荐教程:php图文教程)
实例:
header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height = 180; static public function tell(){ echo self::$name;//静态方法调用静态属性,使用self关键词 //echo $this->height;//错。静态方法不能调用非静态属性 //因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象 } public function say(){ echo self::$name . "我说话了"; //普通方法调用静态属性,同样使用self关键词 echo $this->height; } } $p1 = new Human(); $p1->say(); $p1->tell();//对象可以访问静态方法 echo $p1::$name;//对象访问静态属性。不能这么访问$p1->name //因为静态属性的内存位置不在对象里 Human::say();//错。say()方法有$this时出错;没有$this时能出结果 //但php5.4以上会提示 ?>
(视频教程推荐:php视频教程)
总结:
(1)静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名";
(2)静态方法不需要实例化即可调用。同上
(3)静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;
(4)静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;
PHP中普通方法如何调用静态属性,php中的静态属性和静态方法如何调用相关推荐
- python中的方法和函数的区别_Python中函数和方法的区别
在Python中函数和方法是有区别的. 区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中. 区别二定义的方式: 1.函数定义的方式 def关键字 然后接函数名 再是 ...
- 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )
文章目录 一.闭包中调用 Groovy 脚本中的方法 二.owner 与 delegate 区别 三.闭包中调用 Groovy 对象中的方法 一.闭包中调用 Groovy 脚本中的方法 在 Groov ...
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- java中main方法的作用是什么_java中main方法是什么
Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法. main方法的定义格式通常 ...
- java中list方法addall怎么写_简历中个人优势怎么写?| 四大方法教你打造独一无二“个人标签”...
一. 个人简历中绕不开的核心部分是优势能力的描述,同时也在过往的几百例咨询中发现,无论是即将毕业的职场新人.还是已经有3-5年经验的,很多都有类似的困惑. "我不知道我有啥特长,大学四年好像 ...
- java中实现方法重载怎么声明_java 接口中如何声明类似于重载的方法?
先说一下你的几个问题 你使用一个类型参数T继承PetHospital,T的类型可能是Hippiater,Customer,Pet等.这种继承方法违反了继承的"is-A"语义,试想一 ...
- 绑定服务调用本地服务中的方法
如果想调用服务中的方法, 通过startService()是做不到的, 这时需要用bindService来解决. 下面的demo是在Activity中调用Service中的自定义方法---method ...
- C#实现反射调用动态加载的DLL文件中的方法
反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...
- html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...
反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...
- php怎么调用类里面的方法_php调用类中的方法
PHP外文名:PHP: Hypertext Preprocessor,中文名:超文本预处理器是一种通用开源脚本语言.可以是未实例化的类名直接调用.下面由小编整理了几种php调用类中的方法,希望对大家有 ...
最新文章
- zcu102 hdmi example(一)
- 由event target引发的关于事件流的一连串思考(二)
- 【译】SQL Server误区30日谈-Day2-DBCC CHECKDB会导致阻塞
- 【机器学习】使用MLflow管理机器学习模型版本
- CentOS虚拟机不能联网状况下yum方式从本地安装软件包
- CF-1207 F. Remainder Problem(分块)
- 关于SAP CRM中间件系统搭建中遇到的一些问题
- HazelCast的Spring-Boot和Cache抽象
- mysql工作中遇到的问题_MySQL工作中遇到的问题记录
- java vim ide_把VIM配置成IDE开发环境 | 学步园
- oracle查询学生人数语句,Oracle期末复习题-带答案
- 音乐 美术 计算机期末考试表,贵阳初中学业水平考试信息技术、音乐、美术考评标准出炉!...
- 重载、类型转换与运算符
- 免费python自学攻略-Python自学攻略
- 科大讯飞独家Founding赞助国际语音顶会,14篇论文被收录
- C# winform程序调用屏幕键盘
- 如何在Mac上合并照片库?
- ubuntu安装mysql失败了,为啥嘞
- mac 下载软件无法将程序拖移至app 出现错误
- 【Python与数据分析实验报告】Pandas数据分析基础应用