PHP静态变量
我有一个类,它执行一些API(REST)函数。我想声明变量类范围的变量和静态变量,所以我不会一次又一次地获取数据。(这是我在理论上认为可能是错误的)类中的许多方法都需要这些数据 我正在使用这种类型的类,但有些东西看起来不对劲。它正在工作,但是 (这只是一个示例类,不是真正的代码)PHP静态变量,php,Php,我有一个类,它执行一些API(REST)函数。我想声明变量类范围的变量和静态变量,所以我不会一次又一次地获取数据。(这是我在理论上认为可能是错误的)类中的许多方法都需要这些数据 我正在使用这种类型的类,但有些东西看起来不对劲。它正在工作,但是 (这只是一个示例类,不是真正的代码) 那么单例模式呢 class Some_Process { protected static $_instance; private $_tickets = array(); public stati
那么单例模式呢
class Some_Process {
protected static $_instance;
private $_tickets = array();
public static function initialiaze() {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_URL, 'http://someurl');
self::getInstance(json_decode(curl_exec($curl));
}
public static function getInstance($tickets = null) {
if (!self::$_instance) {
self::$_instance = new self($tickets);
}
return self::$_instance;
}
private function __constructor($tickets) {
$this->_$tickets = $tickets;
}
public function getTickets() {
return $this->_tickets;
}
public function processTickets() {
$this->_tickets();
...
}
}
使用单例模式,您只需实例化一次对象,就可以抓取一次票证
情商:
那么单例模式呢
class Some_Process {
protected static $_instance;
private $_tickets = array();
public static function initialiaze() {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_URL, 'http://someurl');
self::getInstance(json_decode(curl_exec($curl));
}
public static function getInstance($tickets = null) {
if (!self::$_instance) {
self::$_instance = new self($tickets);
}
return self::$_instance;
}
private function __constructor($tickets) {
$this->_$tickets = $tickets;
}
public function getTickets() {
return $this->_tickets;
}
public function processTickets() {
$this->_tickets();
...
}
}
使用单例模式,您只需实例化一次对象,就可以抓取一次票证
情商:
有一个问题,如果实际退票数量为零,该怎么办?然后,
如果(!self::$tickets)
将始终为真,即使我们已经填充了数组。我将使用null
初始化$tickets
:
private static $tickets = null;
并将该条件更改为:
if( self::$tickets === null ) {
self::$tickets = array();
...
}
有一个问题,如果实际退票数量为零,该怎么办?然后,
如果(!self::$tickets)
将始终为真,即使我们已经填充了数组。我将使用null
初始化$tickets
:
private static $tickets = null;
并将该条件更改为:
if( self::$tickets === null ) {
self::$tickets = array();
...
}
这很好:)我会返回self::$tickets,而不是布尔值,但这可能只是一个品味的问题。谢谢:)实际上我的函数是设置变量的数量(我已经把它简化了)。这就是我返回布尔值的原因。这很好:)我会返回self:$tickets,而不是布尔值,但这可能只是口味的问题。谢谢:)实际上,我的函数是设置变量的数量(我已经将其简化了)。这就是我返回布尔值的原因。