PHP 静态延迟绑定 static
2024-10-21 07:44:35
PHP (self static parent 区别)
- self调用的方法和属性始终表示当前类的方法和属性
- static调用的方法和属性为当前执行的类的方法和属性
- parent调用的方法和属性为父类的方法和属性(存在继承关系)
//self example.php
class A
{
public static $name = 'class is A';
public static function getName()
{
return self::$name;
}
}
class B extends A
{
public static $name = 'class is B';
}
echo B::getName();//class is A
//static example.php
class A
{
public static $name = 'class is A';
public static function getName()
{
return static::$name;
}
}
class B extends A
{
public static $name = 'class is B';
}
echo B::getName();//class is B
问题
函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,无法将函数中此变量的值保存至下一次调用。static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间,静态数据成员按定义出现的先后顺序依次初始化
最新文章
- iOS8后core location框架启动定位服务的步骤
- BZOJ2432 [Noi2011]兔农
- 2015安徽省赛 I.梯田
- git diff获取差异文件中文乱码的解决办法
- Hadoop学习笔记(1)
- MyBatis学习笔记(三) 关联关系
- 第四章_PHP基本语法
- [HTTP] HTTP Verb
- voronoi
- Java 反射 方法调用
- T-SQL语句中中括号([])的用法是什么,什么时候该用
- MSSQL - 备份和还原数据库
- vmware 安装提示the msi failed
- 68、django之session与分页
- MyBatis_关联关系查询
- HTML篇(上)
- 微信公众号接口配置验证URL
- [Day17]常用API(System、Math、Arrays、BigInteger、BigDecimal)
- Cursor for loop in Oracle
- SNF快速开发平台WinForm-CS甘特图