Php 将三个变量返回函数并检查它们
您好,请帮助我从函数返回变量 我从函数返回三个变量,如下所示Php 将三个变量返回函数并检查它们,php,Php,您好,请帮助我从函数返回变量 我从函数返回三个变量,如下所示 return $data return $success return $error 从 $check =$user->search($result); 现在根据收到的变量设置一些条件。我面临的问题是,如何获得收到的变量的名称。我想按名称而不是价值来接收它 像 一个函数不能返回多个变量。我建议制作一个数组,然后返回它 return array('data' => $data, 'success' => $s
return $data
return $success
return $error
从
$check =$user->search($result);
现在根据收到的变量设置一些条件。我面临的问题是,如何获得收到的变量的名称。我想按名称而不是价值来接收它
像
一个函数不能返回多个变量。我建议制作一个数组,然后返回它
return array('data' => $data, 'success' => $success, 'error' => $error);
return
只能返回一个东西,它会“中止”函数,因此一行中不能有两个或多个返回,只有第一个返回才会执行。因此,解决方法是返回一个包含所有所需值的容器。在本例中,我使用了一个数组,但return可以“返回”任何东西-如果愿意,可以将对象传回。这样就不能返回三个变量$success
和$error
将永远不会返回,因为函数在第一次返回$data
后结束
如果要返回三个值,可以这样做:
return array($data, $success, $error);
list($data, $success, $error) = $user->search($result);
try
{
$data = $someObject->someFunction($some_parameter);
}
catch(Exception $e)
{
// error handling code path
}
这样称呼它:
return array($data, $success, $error);
list($data, $success, $error) = $user->search($result);
try
{
$data = $someObject->someFunction($some_parameter);
}
catch(Exception $e)
{
// error handling code path
}
我不太确定您的用例,但从您期望的变量的外观来看,我建议将它们转换为参考参数:
function search($data, &$success, &$error) {
这是许多本机PHP函数所做的,也是一种适用于像您这样的状态变量的习惯用法。缺点是,您必须始终使用额外的参数调用该方法,然后:
$check = $user->search($result, $success, $error);
没有解决您的问题(无法以您尝试过的简单方式解决)
。我如何获得我收到的VARABLE的名称,但我不太确定您的意思或意图。我不认为原始海报试图返回3个变量,而是具有多个控制路径,并根据某些条件返回不同的结果
public function search($r) {
...
return array('data' => $data);
...
return array('success' => $success);
...
return array('error' => $error);
}
$check = $user->search($result);
switch(key($check)) {
case 'data':
// handle data
break;
case 'success':
// handle success
break;
case 'error':
// handle error
break;
}
干净的解决方案是在成功时返回一个数据集(例如数组),如果发生错误则抛出一个异常。使用此方法将消除对变量$success的需要
当您调用以这种方式实现的方法时,您可以这样做:
return array($data, $success, $error);
list($data, $success, $error) = $user->search($result);
try
{
$data = $someObject->someFunction($some_parameter);
}
catch(Exception $e)
{
// error handling code path
}
和的可能重复。使用Python,您可以返回一个元组,并使用sane语法分配其元素;)