php 静态变量的初始化

yipeiwu_com6年前PHP代码库
例如:
class A {
public $f1 = 'xxxx';
static public $f2 = 100;
}


如果要将变量赋值为对象,那么只能在构造器中进行初始化,例如:
class A {
private $child;
public function __construct() {
$this->child = new B();
}
}


但是php中并没有一个类似java中的静态构造器/静态块的东西,就没有合适的时机对其进行初始化了。


对于共有的成员还有办法解决,例如:
class A {
static public $child;
}
A::$child = new B();


对于私有的成员似乎就没有什么干净的方法了,只能这样做:
class A {
static private $child;
static public initialize() {
self::$child = new B();
}
}
A::initialize();

相关文章

【CLI】利用Curl下载文件实时进度条显示的实现

【CLI】利用Curl下载文件实时进度条显示的实现

前言 最近在捣鼓命令行下的编程,下载文件总是一个难熬的过程,如果有进度条就好很多了!!! 先上一个进度条的扩展包,还是不错的https://github.com/dariuszp/cli...

PHP file_get_contents 函数超时的几种解决方法

这里就简单介绍两种: 一、增加超时的时间限制 这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间...

浅析PHP中Session可能会引起并发问题

在进行Web应用程序开发的时候,人们经常会用Session存储数据。但可能有人不知道,在PHP中,Session使用不当可能会引起并发问题。印度医疗行业软件解决方案提供商Plus91 T...

PHP显示今天、今月、上月、今年的起点/终点时间戳的代码

$t = time(); $t1 = mktime(0,0,0,date(“m”,$t),date(“d”,$t),date(“Y”,$t)); $t2 = mktime(0,0,0,d...

php线性表的入栈与出栈实例分析

本文实例讲述了php线性表的入栈与出栈用法。分享给大家供大家参考。具体如下: <?php $stack = array("Simon", "Elaine"); //定...