我正在尝试在PHP中的对象内部使用变量。
我尝试像$object->json_output
一样访问变量,但我收到未定义的属性错误。我希望对此输出进行正则表达式并提取稍后将使用的数据。
我的代码是:
class curl
{
public function curlPut($url, $JSON, $token)
{
$ch = curl_init($url);
$popt = array(
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => $JSON,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization:'.$token.''
));
curl_setopt_array($ch, $popt);
$json_output = curl_exec($ch);
curl_close($ch);
return var_dump($json_output);
}
};
$object1 = new curl;
$object1->curlPut($url, $JSON, $token);
preg_match_all('/"id":"([0-9]*)/', $object1->json_output, $idtest);
$id_array[] = array(
'id' => $idtest[1]
);
其中$json_output
是我需要访问的变量,$id_array
是我需要从$json_output
regexed
IDs
数组。如何访问要在preg_match_all
函数中使用的$json_output
?
我是使用类/对象的新手,所以如果这是一个愚蠢的问题,请道歉。
任何意见将不胜感激!
山 姆
您必须在类上设置一个属性,如下所示:
class Test {
public $json_output = 'Test';
}
$test = new Test();
echo $test->json_output; // output: Test;
该属性必须public
,而不是private
或protected
才能在类外部访问。
您的代码应如下所示:
class curl {
public $json_output = '';
public function curlPut($url, $JSON, $token) {
$ch = curl_init($url);
$popt = array(
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => $JSON,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization:'.$token.''
));
curl_setopt_array($ch, $popt);
$this->json_output = curl_exec($ch);
curl_close($ch);
}
}
$object1 = new curl();
$object1->curlPut($url, $JSON, $token);
preg_match_all('/"id":"([0-9]*)/', $object1->json_output, $idtest);
$id_array[] = array('id' => $idtest[1]);
像这样。创建类变量,然后使用 $this->json_output
进行设置。之后,可以通过 $object->json_output
.
class curl
{
public $json_output; //Added by tilz0R
public function curlPut($url, $JSON, $token)
{
$ch = curl_init($url);
$popt = array(
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => $JSON,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization:'.$token.''
));
curl_setopt_array($ch, $popt);
$this->json_output = curl_exec($ch); //Edit by tilz0R $this-> added
curl_close($ch);
return var_dump($json_output);
}
};