首页
学习
活动
专区
圈层
工具
发布

解读 PHP 中的 self 与 static :你知道什么区别吗?

最近在写一个PHP项目,就此来分享一下self和static的区别。...这背后隐藏着PHP绑定机制的核心秘密。 本质区别 self:坚定不移的"早期绑定" self关键字采用早期绑定(编译时绑定),这意味着它在代码编译阶段就确定了指向关系。...静态调用中的 self 与 static 除了实例化对象,self和static在静态属性和方法调用中也有显著差异: class Base { publicstatic $value = 'Base...重要技术细节 PHP版本要求 static关键字需要PHP 5.3及以上版本支持。如果你的环境是PHP 5.2或更早版本,将无法使用后期静态绑定特性。...和static的区别,不仅有助于避免潜在的bug,更能让你写出更优雅、更灵活的面向对象代码。

34810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    php中self与static的区别

    php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。...model中的self::getModel(),调用的自然也就是class Car中的getModel方法。 这个行为似乎不是我们想要的,它不符合面向对象的设计原则。如何解决呢?...static关键字和延迟静态绑定(late static binding) 在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...php 5.3以下的版本无法使用延迟静态绑定 注意,php 5.3之前的版本无法使用延迟静态绑定。如果尝试在php 5.3以下的版本运行上面的例子,将会报错。...php中的self和static 现在我们将例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许函数调用在运行时绑定调用类

    1.1K20

    【说站】php7与php5的区别

    php7与php5的区别 在php的版本进行更新后,我们会发现php7比php5多出了一些新特性,相较于之前的使用有了很大的改观,本篇就两个不同的php版本进行比较。...1、性能提高:PHP7比PHP5.0提高两倍。 2、以前有很多致命的错误,现在改为抛出异常。 3、与PHP5.0相比,PHP7.0移除了一些不支持的旧SAPI(服务器端应用程序端口)和扩展。...此外,还有 与PHP5.0相比,PHP7.0增加了空接合操作符。 PHP7.0比PHP5.0增加了一个结合比较操作符。 与PHP5.0相比,PHP7.0增加了函数返回类型声明。...与PHP5.0相比,PHP7.0增加了标量类型声明。 与PHP5.0相比,PHP7.0增加了匿名类别。 错误处理和64位支持。 CSPRNG(伪随机数产生器)。...random_int() - 加密生存被保护的伪随机整数。 以上就是php7与php5的区别,大家如果时间比较宽裕,可以把两个版本就下载下来,进行使用区别的体会。

    1.2K30

    ApplicationStartedEvent 与 ContextStartedEvent 有区别吗?

    今天跟大家聊聊这个问题::ApplicationStartedEvent与ContextStartedEvent有区别吗?...对了,最近我花了几周时间,把SpringForAll社区 3.0上线了(http://spring4all.com),社区的建设目标与之前一样,希望能够构建一个垂直于Java与Spring开发者的高质量技术社区...它们都是继承自SpringApplicationEvent,而SpringApplicationEvent继承自ApplicationEvent,SpringApplicationEvent与题主提到的...所以,Spring Boot中应该是没用到ContextStartedEvent的。以上是我的认识,如果有不对的地方,欢迎评论区指出,一起学习一起进阶!...ApplicationFailedEvent 我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。

    2.5K30

    php date与gmdate的获取日期的区别

    PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为date -- 格式化一个本地时间/日期   gmdate -- 格式化一个 GMT/UTC 日期/时间,返回的是格林威治标准时...举个例子,我们现在所在的时区是+8,那么服务器运行以下脚本返回的时间应该是这样的:   当前时间假定是2007-03-14 12:15:27   echo date('Y-m-d H:i:s', time...03-14 12:15:27   echo gmdate('Y-m-d H:i:s', time()); 输出为:2007-03-14 04:15:27   但是这只是在Linux+Apache下运行PHP...Linux+Apache下还是Windows下都得到了正确的结果,当然这样写还有一个好处,当网站是面向全世界的时候,那么网站用户只要设置所在的时区,程序自动根据用户设置的时区进行时间计算,数据库中信息发布时间只存当前的...time()所生成的时间,那么在中国+8时区看到的发布时间是:2007-03-14 12:15:27,那么在欧洲+2时区用户看到这个信息的发布时间是:2007-03-14 06:15:27,这样信息的时间就全部对应正确了

    2.7K00

    Microsoft 2021与Office 2019的区别大吗?

    office2019和2021区别较大,office2021中添加了自动切换主题、将形状另存为图片、一键式写作建议、在Excel中制作精美的Visio图标、使用内置翻译工具打破语言障碍、语法检查、同一签名运用于所有设备等功能...Office 2021 作为一个一次性的购买出售,这意味着你提前支付一次性的付款就可以在一台计算机上获取 Office 的应用。 一次性购买的产品适用于 PC 和 Mac。...它不需要设置繁琐的路径动画,只需要调整对象的位置、大小和角度,就能一键实现自然过渡的、无缝切换的动画效果, Office 家庭和小型企业版 2021 办公软件 一次性购买,适用于1台 Windows PC...“在家里或学校做更多事情”:这是微软的座右铭,这一版本的 Office 2019 也可以遵守。 炫酷动画轻松做, 静态图文瞬间活起来 平滑切换功能,可以让前后两页幻灯片的相同对象,产生平滑的过渡效果。...它不需要设置繁琐的路径动画,只需要调整对象的位置、大小和角度,就能一键实现自然过渡的、无缝切换的动画效果,像是在同一张幻灯片中变换。

    12.2K40

    SSR 与当年的 JSP、PHP 有什么区别?

    如今的 SSR 与当年的 JSP、PHP 又有什么区别?...一.SSR 大行其道 回到论坛、博客、聊天室仍旧火热的年代,行业最佳实践是基于 JSP、PHP、ASP/ASP.NET 的动态网站 以 PHP 为例: php if ( count( $_POST ) ): ?> php include WTG_INCPATH . '/wechat_item_template.php' ?...Web 服务器的静态资源处理优势,同时减轻应用服务器的负担,将资源分为两类: 静态资源:图片、CSS、JS 等公用的,与具体用户无关的资源 动态资源:应用逻辑、数据操作等与具体用户密切相关的资源 两种资源分开部署...前后端分层就是为了回答这个问题 三.前后端分层 视图逻辑的特殊之处在于: 与数据密切相关 服务端与客户端均可承载视图逻辑 也就是说,HTML 视图结构的创建和维护工作,可以由服务端完成,也可以在客户端完成

    3.2K30

    java和php的区别

    Php与java的区别   1.java和php技术层面对比:   java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件,PHP有他独特的领域,那就是WEB在这方面没有可以和他相比较...,其与java相比较之下在这一方面基本上完胜java因其专注的领域不同所以没有太大可比性,PHP适合于快速开发,中小型应用系统,开发成本低,而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护...而PHP则需要做大量的修改工作。   ...数据库访问方式的差异,奠定了php开发出的oa和java开发出来的oa是马车和火车的差距,前者只能亦步亦趋而且额度有限,后者却是工业化的结晶,不仅能够包容万物而且速度上稳步提   3:在开发上的区别...  (1).php在开发上比较快即写即用java则需要编译   (2).Php占用内存少而java比较占用内存   (3).Java远程调用方便java的同语言调用不是采用纯粹的http调用,而且维护一定的连接

    3K129

    详谈PHP基础与JS操作的区别(必看篇)

    >(常用) 输出语法 Javascript输出   1.alert("警告的内容")   2.prompt("提示的内容")   3.document.write()(页面输出内容) PHP输出   1...,等号后面的值直接写     2.如果定义字符串变量,等号后面的值需要加双引号或单引号) PHP定义变量: $a = 5;  $a = "hello";  $a = 的字符串内容 //也可放...world" PHP特有的变量特征     // 转义字符:一般用在字符串里面,用来输出特殊的内容     //  " 输出双引号    t 制表符    n 换行  eg:$s = "wo\"rld"...转化为小数:parseFloa/【尽量使用一键安装脚本,要么自己做,要么网上下载或使用我博客的,把时间用在更多的地方,少做重复劳动的事情】/t();   3.判断是否为合法数字类型:isNaN(); PHP...$b = settype($b,"string");  //强制转化变量a为字符串 PHP中关于变量的常用函数   $s = 5;   1.var_dump(empty($s));  //empty($

    1.7K10

    项目集与项目管理的区别,你清楚吗?

    在项目管理领域,项目集管理与项目管理是两个常被提及但容易混淆的概念。本文旨在探讨这两者之间的区别。...二、目标与成果项目管理的主要目标是确保单个项目按时、按预算完成,并达到预期的质量标准。项目经理需要关注项目细节,解决项目过程中出现的问题,以及与团队成员和利益相关者进行沟通,以确保项目目标的实现。...启动阶段:明确目标与界限在启动时,首要任务是设定聚会的目的,究竟是庆祝某人的生日,还是仅为朋友们提供一个轻松的交流场所。...项目集执行与监控阶段:持续协调与问题应对在项目集的实际推进过程中,需密切关注各项目的进展细节。...四、PgMP®与PMP®认证区别1、面向对象不同PgMP®认证面向组织的高级管理人员与项目高层(主要的管理层次为大型战略项目、项目集以及多项目的高级管理)。

    44510

    你真的知道 Java 中 的 equals 与 == 的区别吗?

    飞哥语录:把时间放在能产生价值的事上面。 ==是运算符而equals是比较方法。...1、==运算符 (1)基本数据类型比较值:只要两个变量的值相等,即为true 注意:当基本数据类型使用“==”进行比较时,符号两边的数据必须类型兼容(类型相同或可自动类型转换),否则编译出错; (2)...引用类型比较引用:比较两个对象的地址值,两个引用变量指向同一个对象的堆空间时,才为true Person p1=new Person(); Person p2=new Person(); if(p1...==p2) //false p1=p2;//如果有这样的赋值语句后 if(p1==p2) //true 注意:当引用类型使用“==”进行比较时,符号两边的数据类型必须兼容(类型相同或有父子类关系...str2))//true,比较的是字符串的内容。

    61920

    php+apache 和 php+nginx的区别

    PHP 解释器是否嵌入 Web 服务器进程内部执行 mod_php 通过嵌入 PHP 解释器到 Apache 进程中,只能与 Apache 配合使用,而 cgi 和 fast-cgi 以独立的进程的形式出现...mod_php 这种嵌入的方式最大的弊端就是内存占用大,不论是否用到 PHP 解释器都会将其加载到内存中,典型的就是处理CSS、JS之类的静态文件是完全没有必要加载解释器。 2....单个进程处理的请求数量 mod_php 和 fast-cgi 的模式在每个进程的生命周期内能够处理多个请求(fast-cgi可以根据需要来调整进程的多少),而 cgi 的模式处理一个请求就马上销毁进程,...PS: cgi、fastcgi 通常指 Web 服务器与解释器通信的协议规范,而 php-fpm 是 fastcgi 协议的一个实现。...如果是商城,比较注重速度的,就使用NGINX+PHP;如果是政府网站等,比较注重稳定性的,就使用APACHE+PHP。 当然,如果不嫌麻烦,完全可以搭建NGINX+APACHE+PHP的环境。

    3.7K80

    【PHP】PHP基础知识与C++、Java等C家族的重点区别

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 刚刚接触PHP,看着PHP的基础知识,发现还是有一些地方与Java有比较大的区别...然后就想着写一写基础知识的一点不同,方便记忆与区分。...> 局部变量与全局变量 PHP中: 局部变量只能在被定义的函数内使用,在该被定义的函数之外无法访问该变量。 全局变量指在函数的外部被定义,其只能在函数外部使用!...也就是说,全局变量与局部变量是分开的! 不过我们还是有一种方法可以在函数内部访问全局变量。 我们可以在函数内部也定义同样的变量,只是我们需要在变量前面加上关键字 global 。...==”不全等 与 === 相对 条件判断语句 PHP中 elseif可以写在一起、 elseif和else if一样的 如有错误或者补充,欢迎在评论区指正,谢谢,我会继续编辑,以及加上补充者ID。

    1.3K10
    领券