Вызов другой функции в том же контроллере?


Я использую Laravel. Вот класс, над которым я работаю:

<?php

class InstagramController extends BaseController {

/*
|--------------------------------------------------------------------------
| Default Home Controller
|--------------------------------------------------------------------------
|
| You may wish to use controllers instead of, or in addition to, Closure
| based routes. That's great! Here is an example controller method to
| get you started. To route to this controller, just add the route:
|
|   Route::get('/', 'HomeController@showWelcome');
|
*/

public function read($q)
{
    $client_id = 'ea7bee895ef34ed08eacad639f515897';

    $uri = 'https://api.instagram.com/v1/tags/'.$q.'/media/recent?client_id='.$client_id;
    return sendRequest($uri);
}

public function sendRequest($uri){
    $curl = curl_init($uri);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

}

Строка:

return sendRequest($uri);

Выводит ошибку: Вызов неопределенной функции sendRequest()

Я предполагаю, что это потому, что я неправильно ссылаюсь на функцию, но я не могу найти никаких объяснений, как это сделать.

Author: Maciej A. Czyzewski, 2013-07-25

2 answers

Попробуйте:

return $this->sendRequest($uri);

Поскольку PHP не является чисто объектно-ориентированным языком, он интерпретирует sendRequest() как попытку вызвать глобально определенную функцию (например, nl2br()), но поскольку ваша функция является частью класса ("instagramcontroller"), вам нужно использовать $this, чтобы указать интерпретатору правильное направление.

 97
Author: haim770, 2016-03-15 13:07:31

Да. Проблема в неправильной записи. Использование:

$this->sendRequest($uri)

Вместо этого. Или

self::staticMethod()

Для статических методов. Также прочитайте это, чтобы получить представление об ООП - http://www.php.net/manual/en/language.oop5.basic.php

 4
Author: QArea, 2016-05-25 15:34:23