我有一个包含不同功能的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'];
}
}
?>
答案 0 :(得分:1)
@A史密斯,让我试着澄清你的意思。
$var1
,$var2
等如果那是你的意思,那么这可能会对你有所帮助:
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';
虽然你真的应该将字符串数据返回给变量,然后将所述变量传递给另一个函数。