вызов функции из класса в php

#php #function

#php #функция

Вопрос:

у меня есть класс для некоторых функций в этом классе. все функции имеют переменные. код написан ниже

 <?php
class myclass{
    public function getresults{
        $url = 'http://www.slideshare.net/api/2/search_slideshows?q=google';
        echo $url;
        $ch=curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Your application name');
        $query = curl_exec($ch);
        $errorCode = curl_errno($ch); 
        curl_close($ch);
        $array = (array) simplexml_load_string($query);
        //echo '<pre>';
        //print_r($array);
        public $TotalResults;
        $TotalResults = $array['Meta']->TotalResults;
        echo "function is correct";
    }

}
  

когда я называю это забавным

 echo $obj1->TotalResults;
  

это выдает ошибку для меня. пожалуйста, помогите мне и измените мой код.

Комментарии:

1. Должны ли мы угадывать, в чем заключается ошибка?

2. @rajzana: Расскажите нам подробнее об ошибке — в вашем коде есть некоторые проблемы, но они могут быть не всеми и не самыми важными.

Ответ №1:

Вы неправильно использовали переменные-члены:

 class myclass{
    public $TotalResults; // <-- added member variable
    public function getresults{
        $url = 'http://www.slideshare.net/api/2/search_slideshows?q=google';
        echo $url;
        $ch=curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Your application name');
        $query = curl_exec($ch);
        $errorCode = curl_errno($ch); 
        curl_close($ch);
        $array = (array) simplexml_load_string($query);
        //echo '<pre>';
        //print_r($array);
        $this->TotalResults = $array['Meta']->TotalResults; // <-- corrected
        echo "function is correct";
    }
}
  

и после того, как вы это сделаете $obj->getresults() (где $obj должен быть создан экземпляр $obj = new myclass(); раньше), $obj->TotalResults должен содержать то, что вы хотели.

Помогло ли это?

Ответ №2:

Что-то вроде этого :

 <?php
 class myclass {

  public function getresults()
  {
    $url = 'http://www.slideshare.net/api/2/search_slideshows?q=google';
    echo $url;
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Your application name');
    $query = curl_exec($ch);
    $errorCode = curl_errno($ch); 
    curl_close($ch);
    $array = (array) simplexml_load_string($query);
    //echo '<pre>';
    //print_r($array);
    public $TotalResults;
    $TotalResults = $array['Meta']->TotalResults;
    echo "function is correct";
  }
}

$obj = new myclass;
echo $obj1->getresults();