CURLを使用してトラフィックを処理するPHPクラスを作成していますが、すべてがうまく動作します(ただし、クッキーを除いて、別のことです)。その偉大な動作しないことの一つは、しかしcurl_close()関数であり、私は完全に働いた理由は...curl_close():有効なcURLハンドルリソースではありませんが、なぜですか?
$curlSession = &$tamperCurl->getCURLSession();
var_dump($curlSession);
curl_close($curlSession);
die();
I以前に呼び出さcurl_exec()、すべて見当がつかない。これは私を与えている出力は、次のとおりです。 リソース(6)タイプの(カール)
警告:curl_close():6行に filename.phpで有効なのcURLハンドルリソースではありません
これはなぜ起こっているのですか? (var_dumpは、明らかにカールセッションであると言っています)。ので、私は全体TamperDataクラスの気圧を投稿することができない著作権の問題(それは後でGPLになります)の
:ADDITION
。
Iはこれにそれを簡略化した:再び
public function __construct($xmlFilePath, $options=null)
{
if($options != null) $this->setOptions($options);
$this->headerCounter = 0;
$this->setXMLHeader($xmlFilePath);
$this->init();
}
public function init($reuseConnection=false,$resetSettings=null)
{
$this->curlSession = curl_init();
}
同じ出力:タイプの リソース(8)(カール) PHP TamperCurlのコンストラクタは次のようである
$tamperCurl = new TamperCurl('test.xml');
echo var_dump($tamperCurl->getCURLSession());
curl_close($tamperCurl->getCURLSession());
die();
警告:curl_close():8は、行58のTamperCurl.phpの有効なcURLハンドルリソースではありません
メソッド呼び出しから '&'を削除してみてください。 – ThiefMaster
@Briedis - それはポインタではありません。疑問符はどうですか? 1つで十分です。 –
ポインタが少し混乱するかもしれませんが、クラスから出てきています。参照を使用しない場合は、単にget関数のreturn文にコピーされます。オブジェクトの実際のインスタンス変数をそのままにしておきます。 (少なくとも私は起こっていると思います)。 私はそれを参照してもしなくてもかまいません。クラスの内部であっても、この関数は、上記の指定されたのと同じ理由のために動作しません: \tパブリック関数__destruct() \t { \t \t場合(!の$ this - > curlSession = NULL)curl_close(の$ this - > curlSession) ; \t} – shokora