PHP print_r工作但返回不起作用

时间:2013-10-10 05:54:57

标签: php

当我调用此函数时,它不会返回数据(仅使用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"];

2 个答案:

答案 0 :(得分:2)

print_r!== echo

您的数据是否是任何机会的数组或对象?

var_dump($x);

获取更多信息。

答案 1 :(得分:0)

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

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

echo $johndoe;

通常,您可能会看到使用PHP的短回声语法:<?=。结果将如下所示:

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

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