有沒有辦法讓我的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