当我需要返回多个值作为我的函数的结果时(例如,让我们说一个布尔说明特定操作是否成功,以及一条消息说明错误或成功消息),我应该返回那些数组中的多个值,或者通过使函数参数成为引用并更改它们的值?
function myFunction($input){
...
return array("success" => true/false, "message" => "Internal Error"/"Success");
}
或者
function myFunction($input, &$success, &$message){
...
$success = true;
$message = "It worked";
}
什么是最佳做法?我已经在各种代码库中看到过,即使是在其他语言中也是如此。
答案 0 :(得分:-1)
这取决于您的用例以及最适合您的需求。可以使用这两种方法,而第二种方法由一些内置的PHP函数使用(例如exec
)。如果您从一开始就不需要数组,因为您没有输出它(例如作为JSON),您应该使用引用,并且可能只返回true
或false
,具体取决于成功完成或不。如果您曾经需要该消息,则可以使用您引用的变量。
function myFunction($input, &$return_message) {
if($input ...) {
$return_message = 'action 1 successfully';
return true;
} else {
$return_message = 'invalid input';
}
return false;
}
$msg = "";
$action = myFunction(array('Hello'), $msg);
if($action === true) {
echo 'Action completed!';
} else {
die('Action not successfully, error message: '.$msg);
}