Вопрос озвучен могу, тут могу лишь дать пояснения что я имею ввиду. Вот класс обрертка curl
<?php
class Curl
{
protected static $curl;
private $ch;
private $user_agent;
private $http_header = [];
private $proxy;
private $proxy_type;
public function __construct()
{
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION , true);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->ch, CURLOPT_TIMEOUT, 60);
curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, 30);
}
public function __destruct()
{
if (isset($this->ch)) {
curl_close($this->ch);
}
}
public static function init()
{
return (is_null(self::$curl)) ?
self::$curl = new self :
self::$curl;
}
/**
* Установка user-agent
**/
public function setUserAgent($user_agent)
{
$this->user_agent = $user_agent;
}
//...
public function clear()
{
self::$curl = null;
}
}
вот вызов
$curl = Curl::init();
$curl->setUserAgent('Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0');
echo $curl->post('https://httpbin.org/user-agent');
$curl->clear();
echo $curl->user_agent; // почему данная переменная не ровна нулю?!
и вывод
user@debian:~/projects/myscr$ php myscr.php
{
"user-agent": "Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0"
}
Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
user@debian:~/projects/myscr$
echo $curl->user_agent; - почему переменная не уничтожается ведь self::$curl = null?