Php 从函数/方法返回多个值
我的类中有一个方法,我希望返回多个值:Php 从函数/方法返回多个值,php,Php,我的类中有一个方法,我希望返回多个值: public function lockFields($lockFieldsDBs, $lockValueConstant) { if ($lockFieldsDBs == $lockValueConstant) { $lockFieldValue = 'readonly="readonly"'; $lockImage = 'image_url_goes_here'; } else {
public function lockFields($lockFieldsDBs, $lockValueConstant) {
if ($lockFieldsDBs == $lockValueConstant) {
$lockFieldValue = 'readonly="readonly"';
$lockImage = 'image_url_goes_here';
}
else {
$lockFieldValue = null;
$lockImage = null;
}
return $lockField;
return $lockImage;
}
...........
$lockFieldsDBs = 'OK';
$lockValueConstant = 'OK';
$formHandler->lockFields($lockFieldsDBs, $lockValue);
当试图打印出这样的值时:echo$lockImage代码>,我得到未定义变量:lockImage
为什么不返回值?在PHP函数中只能返回一个变量。如果需要返回两个,则需要使用数组(或对象)
在PHP函数中只能返回一个变量。如果需要返回两个,则需要使用数组(或对象)
php函数中不能返回两个变量:
return $lockField;
return $lockImage;
return ['lockField'=>$lockField, 'lockImage'=>$lockImage];
您可以将它们放入一个数组中:
return array($lockField, $lockImage);
要使用它:
$response = $formHandler->lockFields($lockFieldsDB,$lockValue)
echo $response[0]; // this is $lockField in your function
echo $response[1]; // this is $lockImage in your function
php函数中不能返回两个变量:
return $lockField;
return $lockImage;
return ['lockField'=>$lockField, 'lockImage'=>$lockImage];
您可以将它们放入一个数组中:
return array($lockField, $lockImage);
要使用它:
$response = $formHandler->lockFields($lockFieldsDB,$lockValue)
echo $response[0]; // this is $lockField in your function
echo $response[1]; // this is $lockImage in your function
$lockImage是方法内部的一个变量。为什么您认为它将在全球范围内提供?要明确的是:
public function lockFields($lockFieldsDBs,$lockValueConstant){
$lockImage = "some value";
return $lockImage;
}
$formHandler->lockFields($lockFieldsDB,$lockValue);
echo $lockImage; // variable $lockImage does not exists
不行。应该是:
public function lockFields($lockFieldsDBs,$lockValueConstant){
$lockImage = "some value";
return $lockImage;
}
$lockImage = $formHandler->lockFields($lockFieldsDB,$lockValue);
echo $lockImage; // "some value"
其他答案指出,您需要正确返回值。但我认为您也没有正确获取返回值。$lockImage是该方法内部的一个变量。为什么您认为它将在全球范围内提供?要明确的是:
public function lockFields($lockFieldsDBs,$lockValueConstant){
$lockImage = "some value";
return $lockImage;
}
$formHandler->lockFields($lockFieldsDB,$lockValue);
echo $lockImage; // variable $lockImage does not exists
不行。应该是:
public function lockFields($lockFieldsDBs,$lockValueConstant){
$lockImage = "some value";
return $lockImage;
}
$lockImage = $formHandler->lockFields($lockFieldsDB,$lockValue);
echo $lockImage; // "some value"
其他答案指出,您需要正确返回值。但是我认为您也无法正确获取返回值。借助list()
语言构造,您可以从函数返回两个或多个值:
public function lockFields($lockFieldsDBs, $lockValueConstant) {
if($lockFieldsDBs == $lockValueConstant){
$lockFieldValue = 'readonly="readonly"';
$lockImage = 'image_url_goes_here';
}
else {
$lockFieldValue = null;
$lockImage = null;
}
return [$lockField, $lockImage];
}
list($lockField, $lockImage) = $formHandler->lockFields($lockFieldsDBs, $lockValue);
借助list()
语言构造,可以从函数返回两个或多个值:
public function lockFields($lockFieldsDBs, $lockValueConstant) {
if($lockFieldsDBs == $lockValueConstant){
$lockFieldValue = 'readonly="readonly"';
$lockImage = 'image_url_goes_here';
}
else {
$lockFieldValue = null;
$lockImage = null;
}
return [$lockField, $lockImage];
}
list($lockField, $lockImage) = $formHandler->lockFields($lockFieldsDBs, $lockValue);
问题是您返回的变量形式不止一个。
你不能。您必须分配一个数组或列表来执行此任务,要执行此操作,请在结束函数之前使用以下任一代码:
return $lockField;
return $lockImage;
return ['lockField'=>$lockField, 'lockImage'=>$lockImage];
或
问题是您返回的变量形式不止一个。
你不能。您必须分配一个数组或列表来执行此任务,要执行此操作,请在结束函数之前使用以下任一代码:
return $lockField;
return $lockImage;
return ['lockField'=>$lockField, 'lockImage'=>$lockImage];
或
我想你不能返回多个变量点1:如果条件为真,你就不能返回任何东西点2:如果你需要两个变量,你就不能返回两个变量,返回一个数组返回在if()之外,只是格式不好。可能重复我想你不能返回多个变量点1:如果条件为真,你不能返回任何内容点2:如果你需要两个变量,你不能返回两个变量,返回一个数组返回在if()之外,只是格式不好。或的重复可能会产生
,但这会变得有点复杂;)或者yield
,但这会变得有点复杂;)大家好,我应该在上课的时候把列表列出来,还是在我叫全班的时候。谢谢。@ZYZ123ABC242526在类之外,就在您调用方法的地方。您好,我应该在类中的列表行还是在调用类时的列表行。谢谢。@ZYZ123ABC242526在类外,就在调用方法的地方。