82

私はこのコントローラーを持っています、そしてfunction read($q)リターンエラーCall to undefined function sendRequest()

<?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;
}

}

関数を間違った方法で参照しているためだと思いますが、その方法についての説明が見つかりません。

4

4 に答える 4

184

試す:

return $this->sendRequest($uri);

PHP は純粋なオブジェクト指向言語ではないsendRequest()ため、グローバルに定義された関数を呼び出す試みとして解釈されますnl2br()が (たとえば)、関数はクラス ('InstagramController') の一部であるため、使用する必要があります$this。正しい方向への通訳。

于 2013-07-25T14:53:27.903 に答える
17

はい。問題は間違った表記です。使用する:

$this->sendRequest($uri)

その代わり。または

self::staticMethod()

静的メソッド用。また、OOPのアイデアを得るためにこれを読んでください - http://www.php.net/manual/en/language.oop5.basic.php

于 2013-07-26T09:52:45.750 に答える