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

时间:2011-11-21 00:40:55

标签: php string function

我有一个包含不同功能的php文件。我需要从函数中的字符串中获取数据,但是字符串已在不同的函数中指定。怎么可以这样做?

......为了澄清,我有两个功能。

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

在功能a期间,用户名可以翻转。

function b($request) { } 

函数b需要用户名,但无法在其调用的位置检索它,因此需要它来自函数a。我在这里非常喜欢(请跟我说),我尝试在函数b中使用$ username,但这不起作用。

请您解释一下我如何能更清楚地做到这一点。还有另外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'];
    }
}
?>

2 个答案:

答案 0 :(得分:1)

@A史密斯,让我试着澄清你的意思。

  1. 您有几个变量,例如:$var1$var2
  2. 您有两个功能(或更多),需要访问这些变量。
  3. 如果那是你的意思,那么这可能会对你有所帮助:

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

    只要您想要在函数中访问全局范围变量,就要记住定义全局。您可以READ THIS明确说明。

    <强> EDITED

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

    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;
    

答案 1 :(得分:0)

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

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

虽然你真的应该将字符串数据返回给变量,然后将所述变量传递给另一个函数。