如何从不同的函数中获得字符串数据


How to get a strings data from a different function?

我有一个php文件,其中有不同的函数。我需要从一个函数中的字符串中获取数据,但是字符串已经在不同的函数中指定。请问怎么做呢?

…澄清一下,我有两个函数。

function a($request) { $username = ...code to get username; } 

用户名在函数a中无法检索。

function b($request) { } 

函数b需要用户名,但不能在它调用的点检索它,所以需要它从函数a。我是一个非常多的初学者在这里(所以请忍受我),我尝试简单地使用$username在函数b,但那没有工作。

你能解释一下我怎样才能更清楚地做这件事吗?还有另外5个这样的字符串,函数b需要从函数a中得到所以我需要对所有的字符串都这样做。

…代码:

    <?php
class function_passing_variables {
    function Settings() {       
        //function shown just for reference...
        $settings = array();
        $settings['users_data'] = array( "User Details", "description" );
        return $settings;
    }
    function a( $request ) {
        //This is the function that dynamically gets the user's details.
        $pparams = array();
        if ( !empty( $this->settings['users_details'] ) ) {
            $usersdetails = explode( "'n", Tool::RW( $this->settings['users_data'], $request ) );
            foreach ( $usersdetails as $chunk ) {
                $k = explode( '=', $chunk, 2 );
                $kk = trim( $k[0] );
                $pparams[$kk] = trim( $k[1] );
            }
        }
        $email=$pparams['data_email'];
        $name=$pparams['data_name'];
        $username=$pparams['data_username'];
       //These variables will retrieve the details
    }
    function b( $request ) {
        //Here is where I need the data from the variables
        //$email=$pparams['data_email'];
        //$name=$pparams['data_name'];
        //$username=$pparams['data_username'];
    }
}
?>

@A Smith,让我试着澄清一下你的意思。

  1. 您有几个变量,例如:$var1, $var2
  2. 你有两个(或更多)函数,需要访问这些变量。

如果这是你的意思,那么这个可能会帮助你:

global $var1,$var2;  
function a($params){
   global $var1;
   $var1 = 1;
}
function b($params){  
   global $var1,$var2;
   if($var1 == 1){
      $var2 = 2;
   }
}

只要记住定义global当你想跨函数访问全局作用域变量时。你可以读一读,把它弄清楚。

现在很清楚了。然后你可以这样做:

class function_passing_variables{
   // add these lines
   var $email = "";
   var $name = "";  
   var $username = "";  
  // ....  

然后在你的 function a($request) 更改这个:

$email=$pparams['data_email'];
$name=$pparams['data_name'];
$username=$pparams['data_username'];

:

$this->email=$pparams['data_email'];
$this->name=$pparams['data_name'];
$this->username=$pparams['data_username'];

现在,您可以在 function b($request) 中访问它:

echo $this->email;
echo $this->name;
echo $this->username;

在已设置字符串的函数中:

Global $variable;
$variable = 'string data';

虽然您确实应该将字符串数据返回给变量,然后将该变量传递给另一个函数。