簡體   English   中英

PHP:OOP:返回錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM