-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

我认为你在混淆returnechoreturn不输出任何内容,但允许您在函数之外使用值,如下所示:

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

echo $johndoe;

通常你可能会看到它使用 PHP 的简短回显语法:<?=. 结果将如下所示:

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

无论如何,你需要对函数的结果做一些事情,否则价值就会被遗忘。也就是说,如果函数返回结果。有些函数只是“做”一些事情,不返回任何东西。

于 2013-10-10T06:02:56.807 回答