扩展类中未定义的方法

时间:2016-03-07 19:05:31

标签: php google-maps oop curl

我有这个代码,我正在扩展一个类,但它说方法是未定义的。

<?php
class api{
    //$api_Key;
    public function getURL($url){
        return file_get_contents($url);
    }
    public function postURL($url){
        $ch = curl_init( $url );
        curl_setopt( $ch, CURLOPT_POST, 1);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);

        $response = curl_exec( $ch );
        curl_close($ch);
        return $response;
    }
    public function getJSON($json){
        return json_decode($json);
    }
} 
class geo extends api{
    public function getLocation(){
        return json_decode(postURL("https://www.googleapis.com/geolocation/v1/geolocate?key=$key"));
    }
}
class vote extends geo {
// Class properties and methods go here
}

?>

要在网上查看的PHP文件

<?php
        include("php/vote.php");
            $geo = new geo();
             echo $geo->getLocation();
        ?>

我收到此错误致命错误:

  

调用未定义的方法geo :: json_decode()in   第22行的G:\ wamp \ www \ voting \ php \ vote.php

我还没有找到能够帮助我解决这个问题的事情。我有正确的父母和子女课程,或者我认为我做了。 它正在扩展课程,所以我不确定为什么它是未定义的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

@Path("path/pathParam/{pathParamVal : [0-1,3-9]}") 是一个内置的PHP函数,而不是任何一个类的方法。您还忘记了方法json_decode()的{​​{1}}参考。从$this移除postURL()并使用$this

json_decode()

但我认为你确实想要使用你的方法$this->postURL

return json_decode($this->postURL("https://www.googleapis.com/geolocation/v1/geolocate?key=$key"));