php中冒号是什么,在PHP中:(双冒号)和-(箭头)有什么区别?

当左侧部分是对象实例时,可以使用->..否则,您将使用::.

这意味着->主要用于访问实例成员(尽管它也可用于访问静态成员,但不鼓励这种使用),而::通常用于访问静态成员(尽管在一些特殊情况下,它用于访问实例成员)。

总体而言,::用于范围分辨率,它可能有一个类名,parent, self,或(在PHP 5.3中)static在左边。parent指所使用的类的超类的作用域;self指使用它的类的作用域;static指“被调用的范围”(请参见后期静态绑定).

规则是::是实例调用当且仅当:目标方法未声明为静态方法。

调用时有一个兼容的对象上下文,这意味着这些内容必须为真:调用是从以下上下文发出的

$this存在和

.的阶级

$this是正在调用的方法的类或它的子类。

例子:class A {

public function func_instance() {

echo "in ", __METHOD__, "\n";

}

public function callDynamic() {

echo "in ", __METHOD__, "\n";

B::dyn();

}}class B extends A {

public static $prop_static = 'B::$prop_static value';

public $prop_instance = 'B::$prop_instance value';

public function func_instance() {

echo "in ", __METHOD__, "\n";

/* this is one exception where :: is required to access an

* instance member.

* The super implementation of func_instance is being

* accessed here */

parent::func_instance();

A::func_instance(); //same as the statement above

}

public static function func_static() {

echo "in ", __METHOD__, "\n";

}

public function __call($name, $arguments) {

echo "in dynamic $name (__call)", "\n";

}

public static function __callStatic($name, $arguments) {

echo "in dynamic $name (__callStatic)", "\n";

}}echo 'B::$prop_static: ', B::$prop_static, "\n";echo 'B::func_static(): ', B::func_static(), "\n";$a = new A;$b = new B;echo '$b->prop_instance: ', $b->prop_instance, "\n";//not recommended (static method called as instance method):echo '$b->func_static(): ', $b->func_static(), "\n";echo '$b->func_instance():', "\n", $b->func_instance(), "\n";/* This is more tricky

* in the first case, a static call is made because $this is an

* instance of A, so B::dyn() is a method of an incompatible class

*/echo '$a->dyn():', "\n", $a->callDynamic(), "\n";/* in this case, an instance call is made because $this is an

* instance of B (despite the fact we are in a method of A), so

* B::dyn() is a method of a compatible class (namely, it's the

* same class as the object's)

*/echo '$b->dyn():', "\n", $b->callDynamic(), "\n";

产出:B::$prop_static: B::$prop_static value

B::func_static(): in B::func_static

$b->prop_instance: B::$prop_instance value

$b->func_static(): in B::func_static

$b->func_instance():

in B::func_instance

in A::func_instance

in A::func_instance

$a->dyn():

in A::callDynamic

in dynamic dyn (__callStatic)

$b->dyn():

in A::callDynamic

in dynamic dyn (__call)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

seo伪原创工具_文章伪原创工具哪个好用(伪原创工具有哪些)

从事网站seo优化的工作基本上每天都会和文章打交道,因为网站的排名与网站的收录关系是非常大的,网站的收录又和文章息息相关,搜索引擎的胃口是比较喜欢新的内容、原创的内容,而对于一些文案功底比较没那么好的SEOer来说&#xff0…

Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析【转】...

Android系统的运行时库层代码是用C来编写的,用C 来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析…

Jenkins安装(Maven安装)(4)

Maven安装 //进入一个目录 cd /usr/local //创建一个文件夹 mkdir maven //下载maven的tar包 wget https://mirrors.cnnic.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz //解压tar包 tar -xf apache-maven-3.5.4-bin.tar.gz mv apache-maven-3.5.4 /…

php7 nts,php7.0.24-nts配置步骤

php-cgi.exe文件运行php-cgi.exe -b 127.0.0.1:9000 -c D:/myphp2017/php7-nts/php.ininginx命令启动 start nginx关闭 ngnix -s stopphp.ini中CGI信息配置enable_dl Oncgi.force_redirect 0cgi.fix_pathinfo1fastcgi.impersonate 1cgi.rfc2616_headers 1nginx.conf的配置#…

函数调用关系图如何画_彩铅画入门植物教程 | 如何用彩铅画一株多肉?多肉彩铅画教程步骤图详细...

画画不难,难的是不拿起手中的笔去画。彩铅画入门植物教程 | 如何用彩铅画一株多肉?多肉彩铅画教程步骤图详细多肉的质感如何表达呢?还是那句话:艺术来源于生活,要仔细观察。拿我们今天画的多肉来说,首先要观…

jenkins安装 新建节点(5)

1部署程序,tomcat部署不多说 2新建节点 系统管理—管理节点—新建节点 3完成 4这一点要注意 进行验证任务 创建任务—构建一个自由风格的软件—确定 限制项目的运行节点 选择testenv 构建 执行脚本 输入ifconfig验证 构建成功

php设置cookie值,PHP如何设置和取得Cookie值

PHP函数setcookie()用来设置cookie.setcookie()函数必须在标签之前调用,语法是setcookie (name, value, expire, path, domain) 例如:setcookie(“user”, “Alex Porter”, time()3600);?>setcookie(“url”, “http://www.mianwww.com”, time()36…

关于onclick点击无效问题

当要点击的标签在form标签内时&#xff0c;onclick无效。在这个问题上困了好长时间&#xff0c;一项一项排查&#xff0c;自学尤其是遇到问题时&#xff0c;真是麻烦。 还有删除节点报错问题&#xff1a; li.innerHTML content"<span>删除<span>";就是因…

工厂方法模式_1天1个设计模式——工厂方法模式

意图工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。问题假设你正在开发一款物流管理应用。1.0版本只能支持处理卡车运输&#xff0c;因此大部分的代码都位于名为Truck的类中。随着业务越来越广泛…

hadoop简介(大数据技术)

Hadoop可运行于一般的商用服务器上&#xff0c;具有高容错、高可靠性、高扩展性等特点 特别适合写一次&#xff0c;读多次的场景 适合 大规模数据 流式数据&#xff08;写一次&#xff0c;读多次&#xff09; 商用硬件&#xff08;一般硬件&#xff09; 不适合 低延时的数据访问…

session与cokkie区别

刚刚转载于:https://www.cnblogs.com/igoodful/p/9511773.html

如何创建php文件,PHP如何生成.php程序文件

前台程序不少情况下需要生成.php文件&#xff0c;诸如多用户的在线日记程序、留言簿以及自助网站程序等等&#xff0c;都不可避免地在与用户的交互中生成.php程序文件。一般的&#xff0c;所生成的.php文件内容并不复杂&#xff0c;但麻雀虽小五脏俱全&#xff0c;完整的.php文…

python 字符串比较忽略大小写的方法_python实现忽略大小写对字符串列表排序的方法...

本文实例讲述了python实现忽略大小写对字符串列表排序的方法&#xff0c;是非常实用的技巧。分享给大家供大家参考。具体分析如下&#xff1a;先来看看如下代码&#xff1a;string the stirngHas manyline InTHE fIlejb51 netlist_of_string string.split()print list_of_str…

storm简介(大数据技术)

Apache Storm简介 由 chalex 创建&#xff0c;小路依依 最后一次修改 2016-12-12 什么是Apache Storm&#xff1f; Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架&#xff0c;具有最高的摄取率。虽然St…

python无法对存在交叉部分的图片进行识别_Python异常样本识别 交叉验证出现错误?...

源码&#xff1a;fromsklearn.model_selectionimportKFoldfromsklearn.metricsimportrecall_scorefoldKFold(5,shuffleFalse)recall_accs[]c_param_range[0.01,0.1,1,10,100]results_tablep...源码&#xff1a;from sklearn.model_selection import KFoldfrom sklearn.metrics …

hive简介(大数据技术)

背景和概念 Hive是一个依赖于分布式存储的查询和管理大型数据集的数据仓库。传统的非大数据行业一般都是基于表进行数据存储和管理的&#xff0c;如果由于业务扩张或者其他原因迁移到HDFS平台上&#xff0c;那么需要将传统的SQL查询语句全部翻译成Map-reduce的程序实现&#xf…

返回顶部

html代码&#xff1a; <button style"position: fixed;right: 30px;bottom:20px" id"back" onclick"back()">返回顶部</button> javascript代码&#xff1a; for(var i 0; i < 100; i){ document.write("<li>"…

php npm,php – Laravel中NPM,Composer和Bower的区别?

所以在Laravel有Composer,NPM和Bower,我知道他们都是deoendancy经理.Composer – 这似乎关注PHP依赖关系,包列表是composer.json的内容控制器.要安装软件包,您可以添加到此文件或运行php composer install< package>.NPM – 这似乎专注于JavaScript依赖,但也有一个疯狂的…

kafka简介(大数据技术)

kafka是用于构建实时数据管道和流应用程序。具有横向扩展&#xff0c;容错&#xff0c;wicked fast&#xff08;变态快&#xff09;等优点&#xff0c;并已在成千上万家公司运行。 简单说明什么是kafka Apache kafka是消息中间件的一种&#xff0c;我发现很多人不知道消息中间件…

python爬取百度贴吧中的所有邮箱_python写的百度贴吧邮箱采集(带界面)

from main_def import *importrequests,reimportdatetime,timefrom tkinter importENDheaders{"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36"}#单个帖子爬虫def…