有没有办法让我的PHP函数返回不同的值类型?下面的代码应该解释一下我的意思是:函数可以在PHP中有多个返回值类型吗?
<?php
public function test($value){
if($value == 1){
return "SUCCESS";
} else {
return false;
}
}
?>
一个条件,我返回一个字符串,否则,我返回一个布尔值。这是允许/可能的吗?
有没有办法让我的PHP函数返回不同的值类型?下面的代码应该解释一下我的意思是:函数可以在PHP中有多个返回值类型吗?
<?php
public function test($value){
if($value == 1){
return "SUCCESS";
} else {
return false;
}
}
?>
一个条件,我返回一个字符串,否则,我返回一个布尔值。这是允许/可能的吗?
允许/可能吗?
是的。
对,就是允许的,不象在C,Java的,......,在那里你必须定义返回..
这是允许的。但是,在你提供的情况下,这是不可取的。举一个例子,这是有道理的,看看例如strpos()功能。
是的,这是可能的(但不是可取的)。
你至少应该宣布它在你的Javadoc注释
/**
* @param int $value
* @return mixed string|boolean
**/
public function test($value){
if($value == 1){
return "SUCCESS";
} else {
return false;
}
}
即使PHP的内置函数做到这一点有时(例如,的mysql_connect =>布尔|资源链接)
我想知道这个自己,为什么返回不同的东西?所以接收端有两件事要检查?我想我已经决定返回一个空的版本的类型或一个状态元素我自己的数组。
两个例子,事情怎么能函数/方法内改变,你基本上是被迫签超过预期:
<?php
function test($value){
if($value == 1){
$local = successFunction($value);
return $local;
} else {
return false;
}
}
$res = test(1);
if ($res) {
echo "We are OK ? Right? No? What is this?";
}
版本2
function test($value){
if($value == 1){
$local = successFunction($value);
return $local;
} else {
return "";
}
}
$res = test(1);
if (!empty($res)) {
echo "more likely we are ok";
}
?>
你尝试了吗? – JJJ
这是不可能的,如果你关心良好的做法:) – Esailija
只因为你*可*不代表你*应*。 – thetaiko