PHP 基础知识温习,你还记得么?
2015-12-31 12:03
525 查看
下面一段代码的结果是啥?
class A {
public static $test;
}
class B extends A{
}
A::$test = 10;
B::$test = 12;
echo A::$test.'==='.B::$test;
答案是:12===12
class A {
public static $test;
}
class B extends A{
public static $test;
}
A::$test = 10;
B::$test = 12;
echo A::$test.'==='.B::$test;
答案是:10===12
总结:静态变量是基于类的共享的,如果子类继承的父类的静态变量,那么不论改变子类或者父类的静态变量的值,他们的结果都会改变;如果子类的静态变量与父类中同名,那么子类的静态变量属于子类,父类的静态变量属于父类,两者不是同一个,改变对应类的值不会造成父类或者子类静态变量值的变化。
class A {
public static $test;
}
class B extends A{
}
A::$test = 10;
B::$test = 12;
echo A::$test.'==='.B::$test;
答案是:12===12
class A {
public static $test;
}
class B extends A{
public static $test;
}
A::$test = 10;
B::$test = 12;
echo A::$test.'==='.B::$test;
答案是:10===12
总结:静态变量是基于类的共享的,如果子类继承的父类的静态变量,那么不论改变子类或者父类的静态变量的值,他们的结果都会改变;如果子类的静态变量与父类中同名,那么子类的静态变量属于子类,父类的静态变量属于父类,两者不是同一个,改变对应类的值不会造成父类或者子类静态变量值的变化。
相关文章推荐
- 一个关于if else容易迷惑的问题
- Android Native 绘图方法
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- C#中struct和class的区别详解
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结