当我调用此函数时,它不会返回数据(仅使用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"];
答案 0 :(得分:2)
print_r!== echo
您的数据是否是任何机会的数组或对象?
试
var_dump($x);
获取更多信息。
答案 1 :(得分:0)
我认为你混淆了return
和echo
。 return
不会输出任何内容,但允许您使用函数外部的值,如下所示:
$johndoe = GetMainPage('x', 'y');
echo $johndoe;
通常,您可能会看到使用PHP的短回声语法:<?=
。结果将如下所示:
<?=GetMainPage('x', 'y')?>
// This is short for:
<? echo GetMainPage('x', 'y'); ?>
无论如何,你需要对函数的结果做一些事情,否则价值就会被遗忘。也就是说,如果函数返回结果。有些功能只是“做”某些东西,不会返回任何东西。