[英]PHP: OOP: Returning False
如何檢查我的對象是否返回false? 我有以下課程:
class Test {
public function __construct($number) {
if($number != '1') {
return FALSE;
}
}
}
我試過了:
$x = new Test('1');
$x = new Test('2');
但是當我var_dump($ x)時,我得到了相同的結果。 我想做一個:
if(! $x = new Test('1')) {
header("location: xxx...");
}
您不能從構造函數return
任何內容。 如果要使對象的構造失敗,則必須throw
Exception
。
正如deceze所說,構造函數無法返回值。 您可以創建一個返回false的工廠方法,例如:
class Test
{
public function __construct($number) {
...
}
public function factory($number) {
return ($number != '1') ? false : new self($number);
}
}
$x = Test::factory('1');
if (!$x) {
header('Location: ...');
}
但我會改用例外
class Test
{
public function __construct($number) {
if ($number != '1') {
throw new IllegalArgumentException('Number must be "1"');
}
...
}
}
try {
$x = new Test('1');
} catch (Exception $e) {
header('Location: ...');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.