-2

この関数を呼び出すと、(return だけを使用して) データは返されませんが、print_r を使用すると機能します。

これはconnector.phpです

  class Connector
{

        public function Connect() {

          $client = new Client(null);
                $cookiePlugin = new CookiePlugin(new ArrayCookieJar());
                $client->addSubscriber($cookiePlugin);

            private $MainPageURL = "http://example.com";
            $login_url = $this->GetMainPage($client, $this->MainPageURL);

       }

            private function GetMainPage($client, $url) {

                        $request = $client->get($url);

                        $response = $request->send();

                        $data = $response->getInfo('url');

                        return $data; // doesn't work
                        print_r($data); //works 

                    }

}

そして client.php が含まれています

require 'connector.php';
$connector = new Connector($datos);
$con = $connector->Connect();

  echo $con["login_url"];
4

2 に答える 2

2

print_r !== エコー

ひょっとして、あなたのデータは配列またはオブジェクトですか?

試す

var_dump($x);

詳細情報を取得します。

于 2013-10-10T06:26:04.383 に答える
0

returnと を混同していると思いますechoreturn何も出力しませんが、次のように関数の外で値を使用できます。

$johndoe = GetMainPage('x', 'y');

echo $johndoe;

多くの場合、これは PHP の短い echo 構文を使用して使用されているのを目にすることがあります: <?=. 結果は次のようになります。

<?=GetMainPage('x', 'y')?>
// This is short for:
<? echo GetMainPage('x', 'y'); ?>

とにかく、関数の結果で何かをする必要があります。そうしないと、値が忘れ去られてしまいます。つまり、関数が結果を返す場合です。一部の関数は、何かを「実行」し、何も返さないものがあります。

于 2013-10-10T06:02:56.807 に答える