有没有一种方法可以使我的 PHP 函数返回不同的值类型?
下面的代码应该能说明我的意思:
<?php
public function test($value){
if($value == 1){
return "SUCCESS";
} else {
return false;
}
}
?>
我在某些情况下返回字符串,在其他情况下返回布尔值。这种做法可行吗?
是的,PHP是弱类型语言,因此任何变量都可以接受任何类型。函数返回值也不例外。
/**
* @param int $value
* @return mixed string|boolean
**/
public function test($value){
if($value == 1){
return "SUCCESS";
} else {
return false;
}
}
即使是PHP内置函数有时也会这样做(例如mysql_connect => 布尔值 | 资源链接)。
是的,这是允许的,不像在C、Java等语言中需要定义返回值。
我自己也在想,为什么要返回不同的东西呢?这样接收端就需要检查两个东西了吗?
我认为我已经决定返回一个空版本的类型或者一个带有状态元素的数组。
以下是两个例子,说明函数/方法内部可能发生的变化,你基本上被迫检查更多的内容:
<?php
function test($value) {
if ($value == 1) {
$local = successFunction($value);
return $local;
}
else {
return false;
}
}
$res = test(1);
if ($res) {
echo "Are we 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.";
}
?>
true
呢? - Brendan Long