您好,请帮我解决从函数中返回变量的问题 我从函数中返回三个变量
return $data
return $success
return $error
来自
$check =$user->search($result);
现在根据收到的变量设置一些条件。我面临的问题是我怎样才能得到我收到的可变量的名称。我想通过名字而不是价值来接收它 喜欢
if($check == $data )
答案 0 :(得分:3)
您不能从函数返回多个变量。我建议制作一个数组,然后返回。
return array('data' => $data, 'success' => $success, 'error' => $error);
答案 1 :(得分:3)
function myfunc() {
... do stuff ...
$values = array($data, $success, $error);
return($values);
}
$data = myfunc();
echo "Data is ", $data[0];
return
只能返回一个东西,并且它“中止”该函数,因此你不能连续返回2个或更多 - 只有第一个会执行。因此,解决方法是返回一个包含所需值的容器。在这种情况下,我使用了一个数组,但是返回可以“返回”任何东西 - 如果你愿意,你可以传回一个对象。
答案 2 :(得分:3)
你不能以这种方式返回三个变量。永远不会返回$success
和$error
,因为该函数在第一个return $data
之后结束。
如果要返回三个值,可以这样做:
return array($data, $success, $error);
并称之为:
list($data, $success, $error) = $user->search($result);
答案 3 :(得分:2)
我不认为原始海报试图返回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;
}
答案 4 :(得分:1)
干净的解决方案是成功返回数据集(例如数组),如果发生错误则抛出异常。使用此方法将消除变量$ success的需要。
当您调用以这种方式实现的方法时,您可以这样:
try
{
$data = $someObject->someFunction($some_parameter);
}
catch(Exception $e)
{
// error handling code path
}
答案 5 :(得分:-1)
我对你的用例不太确定,但从你期望的变量看起来,我建议把它们变成参考参数:
function search($data, &$success, &$error) {
这是许多本机PHP函数所做的事情,也是像你这样的状态变量的适用习惯用法。缺点是总是必须使用额外参数调用该方法:
$check = $user->search($result, $success, $error);
不解决你的问题(不能用你尝试过的简单方式解决)..how can i get the name of the vairable which i have received
,但我不太清楚你的意思或意图。