我有一个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,让我试着澄清一下你的意思。
- 您有几个变量,例如:
$var1
,$var2
等 - 你有两个(或更多)函数,需要访问这些变量。
如果这是你的意思,那么这个可能会帮助你:
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';
虽然您确实应该将字符串数据返回给变量,然后将该变量传递给另一个函数。