如何从另一个函数中的一个函数访问PHP变量

时间:2015-05-27 13:39:51

标签: php scope laravel-5

我已经以程序方式编写了一个应用程序,并试图进入Laravel框架。我在使用SOAP交换部分时遇到问题,因为我得到一个ID值,用于验证用户,但在程序后面无法访问该值(作为cookie)以验证搜索。

到目前为止,这是我的代码:

$cookie

我成功从Web API调用中检索响应并获取用于对用户进行身份验证的代码,保存为SoapWrapper。但是,我需要创建另一个__setCookie来执行搜索,这需要使用authenticate方法附加的ID代码。如果throttle.blade.php调用未返回任何内容,则会通过其他地方的SoapClient重定向到错误消息。

当然有一种方法可以返回从函数创建的值,以便可以在其他地方使用吗?

**编辑**

考虑使用<?php namespace App\Models; use SoapClient; use Illuminate\Http\RedirectResponse; class SoapWrapper { public function soapExchange() { // set WSDL for authentication and create new SOAP client $auth_url = "http://search.webofknowledge.com/esti/wokmws/ws/WOKMWSAuthenticate?wsdl"; // array options are temporary and used to track request & response data $auth_client = @new SoapClient($auth_url); // set WSDL for search and create new SOAP client $search_url = "http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl"; // array options are temporary and used to track request & response data $search_client = @new SoapClient($search_url); // run 'authenticate' method and store as variable $auth_response = $auth_client->authenticate(); // call 'setCookie' method on '$search_client' storing SID (Session ID) as the response (value) given from the 'authenticate' method // check if an SID has been set, if not it means Throttle server has stopped the query, therefore display error message if (isset($auth_response->return)) { $search_client->__setCookie('SID',$auth_response->return); } else { return Redirect::route('throttle'); } } } 代替并在单个函数中包含所有操作。无论如何,这一切都与特定的Web API有关,因此我认为关注点的分离并不是一个问题。仅供参考我正在尝试的新课程:

<P id="testview"></P>

1 个答案:

答案 0 :(得分:3)

也许试试$ GLOBALS?

<?php
$GLOBALS[data] = "something";

function abc(){
   echo $GLOBALS[data];
}
?>