2013-10-10 147 views
-2

当我调用这个函数它不会返回数据(单独使用返回),但是当我使用print_r它的作品。PHP的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

你如何确定'return'不起作用?当你尝试'print_r(GetMainPage(value,value));'? –

+1

当我调用这个函数时,它不会返回数据(没有print_r)。 – vmark99

+0

请再次阅读这篇文章,我已经说过我调用函数$ x = GetMainPage(a,b);然后echo $ x; 。 – vmark99

回答

0

我想你混淆了returnechoreturn不输出任何东西,但允许您使用功能之外的价值,就像这样:

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

echo $johndoe; 

你经常可以看到这样使用PHP的短回波语法使用:<?=。其结果将是这样的:

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

无论如何,你需要做的函数的结果的东西,否则该值只是失去了在遗忘。也就是说,如果函数返回结果。有些函数只是'做'某些东西,并不会返回任何东西。

+0

是的,我知道。我已经说过我调用函数$ x = GetMainPage(a,b);然后echo $ x;但它不会返回数据。但是当我把print_r放在那里时它会返回数据。 – vmark99

+0

实际上你还没有说明 - 你可能想编辑问题 –

+0

也许'print_r'和'echo'之间的区别是问题。如果你调用'print_r($ x);'或甚至'print_r(GetMainPage('x','y'));'? – GolezTrol

2

的print_r!==呼应

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

尝试

var_dump($x); 

以获取更多信息。

相关问题