PHP ООП: curl_close или unset, какой из них правильный?

1

Я новичок в программировании ООП, я недавно участвовал в обсуждении веб-темы, поэтому здесь моя проблема: на основе этого старого вопроса, когда я сталкиваюсь с методами costruct/destruct, использующими cURL с PHP, я не знаю, должен ли я используйте curl_close или unset. Какой из них правильный? Другими словами, отменяет ($ ch) закрытие сеанса curl при использовании в методе destruct? Мой класс структурирован следующим образом:

class UsingCurl {
    // Properties: cUrl handle, various constants, etc.
    private $ch;
    ...
    public function __construct( ) {
    // setup cookie file with fopen
    // init cURL
    curl_init( $this->ch );
    // setup main cURL options with curl_setopt
    }

    // various methods

    public function __destruct( ) {
    // store session data to db or file
    // closing cURL session with curl_close or unset($this->ch)?
    }  
  • 0
    cURL init должен быть написан так: $this->ch = curl_init();
Теги:
curl
oop
unset

1 ответ

0

Вы должны использовать curl_close потому что это закроет сессию curl и освободит все ресурсы. Он также удалит ручку для завивки:

Closes a cURL session and frees all resources. The cURL handle, ch, is also deleted.

И именно с этим он справляется:

$ch = curl_init();
var_dump($ch); // resource(3, curl)
curl_close($ch);
var_dump($ch); // resource(3, Unknown)

Нет никакого вреда, если вы сделаете оба curl_close и отмените так:

public function __destruct( ) {
    curl_close($this->ch);
    unset($this->ch);
} 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню