-1

是否可以(以某种格式)返回一个包含 PHP 函数信息的变量

例如。

function setuplogin($email,$pwd){
    if(!$email || !$pwd){ return $error = 'not possible'; }
}

所以在它被调用的页面上

<?php echo $error;?>

会工作

编辑:

不可能简单地回显该函数,因为同样的函数也可以设置为 return $success = 'congrats';并在页面上调用<?php echo $success;?>

4

3 回答 3

1

函数只能返回一个值(任何类型)。你对那个值做什么——例如,根据返回的值将它分配给一个变量或不同的变量——完全是调用者的工作,函数不能影响这一点。

当然,你的函数可以通过赋值来创建一个全局变量,$GLOBALS['whatever']但这非常难看,如果你从另一个函数调用你的函数,它甚至不会按照你想要的方式工作。另一个缺点是您总是必须为所有变量分配一些东西 - 否则您最终会得到可能未定义的变量,具体取决于函数所做的事情,并且需要isset()使用这些变量检查代码。

因此,您尝试做的事情不可能以干净的方式进行。最接近的是重新排列一个数组:

function foo() {
    return array('success' => ..., 'error' => ...);
}

然后调用者可以做例如$result = foo();然后使用$result['success']$result['error']

于 2012-08-18T16:54:51.653 回答
0

您可以只设置函数以吐出您想要的变量,而无需使用“变量”。

function setuplogin($email,$pwd){
if(!$email || !$pwd){ return 'not possible'; }
}


<?php echo setuplogin(); ?>


或者您可以使用全局变量并在函数外部调用 $error:

$error = "";
function setuplogin($email,$pwd){
global $error;
if(!$email || !$pwd){ $error = 'not possible'; }
}

<?php echo $error; ?>


当然,第二个假设您将在回声之前调用该函数。

于 2012-08-18T16:51:16.383 回答
0

听起来你想要的是能够返回多个东西:函数是成功还是失败,以及随之而来的消息。您可以通过返回一个数组来做到这一点:

return array('success' => true, 'message' => 'well done');

调用者可以这样做:

$result = setuplogin(...);
echo $result['message'];
于 2012-08-18T17:23:43.787 回答