php关于static和self的一点理解
在使用和学习laravel的过程中,总会看到类似与static::methods 或者static::variable的使用方式,对此感觉到疑惑和不解,后来查阅了相关的资料才知道他是php5.3之后新加入的语法,叫做静态绑定。它可以在运行时,实时的跟当前的类挂钩,这么说可能有点不理解,还是直接上代码吧,看一下他跟self的区别。
<?php
class Fruit
{
public static function echoName()
{
echo "fruit".PHP_EOL;
}
public static function selfName()
{
self::echoName();
}
public static function staticName()
{
static::echoName();
}
}
class Banana extends Fruit
{
public static function echoName()
{
echo "banana".PHP_EOL;
}
}
Banana::selfName();//fruit
Banana::staticName();//banana
查看输出之后,才知道差别,self主要是在那个类里面编写,就绑定的哪个类,但是static则不是,他是跟当前类绑在一起的,是你用哪个类就调用哪个类的方法。
php关于static和self的一点理解的更多相关文章
- rt-thread中软件定时器组件超时界限的一点理解
@2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...
- 三层架构的一点理解以及Dapper一对多查询
1.首先说一下自己对三层架构的一点理解 论坛里经常说会出现喜欢面相对象的写法,所以使用EF的,我个人觉得他俩没啥关系,先别反对,先听听我怎么说吧. 三层架构,基本都快说烂了,但今天还是说三层架构:UI ...
- opencv笔记5:频域和空域的一点理解
time:2015年10月06日 星期二 12时14分51秒 # opencv笔记5:频域和空域的一点理解 空间域和频率域 傅立叶变换是f(t)乘以正弦项的展开,正弦项的频率由u(其实是miu)的值决 ...
- 对socket的一点理解笔记
需要学web service,但是在视频中讲解到了socket套接字编程.以前貌似课上老师有提过,只是没用到也感觉乏味.现在遇到,自己看了些博客和资料.记录一点理解,不知正确与否. 首先说这个名字,叫 ...
- iOS 的一点理解(一) 代理delegate
做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...
- 关于web开发的一点理解
对于web开发上的一点理解 1 宏观上的一点理解 网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端 服务端通过解析报文并处理报文最后把处理的结果 ...
- JAVA Static方法与单例模式的理解
近期用sonar測评代码质量的时候,发现一个问题,project中一些util类,曾经写的static方法都提示最好用单例的方式进行改正. 为此,我细致想了想,发现还是非常有道理的.这里谈谈我个人对s ...
- angular.js的一点理解
对angular.js的一点理解 2015-01-14 13:18 by MrGeorgeZhao, 317 阅读, 4 评论, 收藏, 编辑 最近一直在学习angular.js.不得不说和jquer ...
- RxSwift 入坑好多天 - 终于有了一点理解
一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就 ...
随机推荐
- 《C语言程序设计基础1》第二学期第一周学习总结
**<C语言程序设计基础1>第二学期第一周学习总结 一. 本周学习内容总结 一维数组,了解了一维数组的定义(定义一个数组,需要明确数组变量名,数组元素的类型和数组大小,即数组中元素的数量) ...
- linux-VM无法连接mks套接字连接尝试次数太多
打开服务管理界面 将VM的服务都设为自动,并将其启动 在VM中重新打开虚拟机即可
- 5.18-笨办法学python-习题17(文件拷贝)
from sys import argv from os.path import exists #又import了一个命令exists,这个命令将文件名字符串作为参数,如果文件存在返回TRUE,否则返 ...
- 20155212 2016-2017-2 《Java程序设计》第10周学习总结
20155212 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 密码学基础 ava API支持多种加密算法.如MessageDigest类,可以构建MD5 ...
- 第十四周 P187教材检查
在IDEA中或命令行中运行P187 Guess.java. 这道题是继承语法抽象类一块的知识点,题目本身其实并不难,但是当时做的时候我找自己原来的代码花了很长时间,刚找到运行完截好图,就到时间了. 当 ...
- 2017-2018-1 20155320加分项目——pwd的实现
2017-2018-1 20155320加分项目--pwd的实现 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd ...
- 20145234黄斐《java程序设计基础》第一周
教材学习内容总结 1.java是SUN公司推出的面相网络的编程语言,当时取名Oak,后改名Java. 2.Java三大平台分别为:Java SE.Java EE与Java ME. 3.Java不仅是程 ...
- 【转】 线段树完全版 ~by NotOnlySuccess
载自:NotOnlySuccess的博客 [完全版]线段树 很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时觉得挺自豪的,还去pku打广告,但是现在我自己都不太好意思去看那篇文章 ...
- Django——POST请求及Action触发事件
添加网页login,将类型置为post,并添加action page,也就是之前写好的页面 添加page网页的views函数,要求获取post指令,如果username及password均正确则跳转到 ...
- POJ-3122(二分算法)
//题意:这是一个分蛋糕的游戏, t个测试数据,输入n, f n代表的是n块蛋糕,蛋糕的高为1, f代表的是f个人朋友,然后输入每份蛋糕的半径 // 将n块蛋糕分成 f+1 份 每一份都是完成的一块蛋 ...