OOP 스타일의 코딩 :업데이트 전문가의 지시에 따라, 나는 코드 이런 식으로 수정 한
<?php
//Class Validation
class transaction_validate{
private $val_id;
function __construct($id) {
$this->val_id = $id;
}
public function status(){
//Call our server and decode json value
$data = $this->get_data($this->val_id);
$obj = json_decode($data);
return $obj->status;
}
public function amount(){
//Call our server and decode json value
$data = $this->get_data($this->val_id);
$obj = json_decode($data);
return $obj->amount;
}
//Create a function for fetching data
private function get_data($sid){
$url = 'https://domain.com/verify/process.php?trx='.$sid;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
}
$validate = new transaction_validate();
$validate->val_id = '5201211120944';
echo $validate->amount();
echo '<br>';
echo $validate->status();
을 그리고 출력은
Warning: Missing argument 1 for transaction_validate::__construct(),
Fatal error: Cannot access private property transaction_validate::$val_id
혼란입니다!
============================================== 이전 질문 ============== ========================
나는 OOP 스타일 PHP 코딩을 배우고있다. 잘못된 것으로 보이는 개인 용도의 스크립트를 작성하려고했습니다. 코드는 다음과 같습니다
<?php
//Class Validation
class transaction_validate{
var $val_id;
public function status(){
//Call our server and decore json value
$data = get_data();
$obj = json_decode($data);
return $obj->status;
}
public function amount(){
//Call our server and decore json value
$data = get_data();
$obj = json_decode($data);
return $obj->amount;
}
//Create a function for featching data
private function get_data($val_id){
$url = 'https://domain.com/verify/process.php?trx='.$val_id;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
}
$validate = new transaction_validate('5201211120944');
echo $validate->amount();
echo '<br>';
echo $validate->status();
그리고 출력은 내가 한 무슨 잘못 인식 할 필요가
Fatal error: Call to undefined function get_data() in /home/userdo/public_html/class.php on line 17
입니다.
짧은 이야기를 다음에 호출되는가 (당신이 ... 여기에서 할 수있는 더 많은 것이) 당신이 생성자를 추가해야합니다 ($ val_id가 개체의 멤버로 설정되지 않는 get_data()'는 $ this-> get_data()이어야합니다. –
답장을 보내 주신 Matt 께 감사드립니다. 그러나 어떤 부분에 대한 생성자? cURL을 통해 데이터 가져 오기? – PHPLearner
스티브의 대답이 있습니다. :) –