Php 当类无法启动时,是否可以返回null而不是对象?

Php 当类无法启动时,是否可以返回null而不是对象?,php,Php,是否可以设计一个类构造函数来销毁对象,或者在对象无法启动时将其设置为null。例如,在下面的代码中-如果在数据库中找不到用户,那么将对象设置为Null可能会很有用。。。还是使用类成员标志$found B更好 您可以使用工厂模式或类似的模式 <?php class UserFactory { static function createUser($username) { if($username == 'something') { retur

是否可以设计一个类构造函数来销毁对象,或者在对象无法启动时将其设置为null。例如,在下面的代码中-如果在数据库中找不到用户,那么将对象设置为Null可能会很有用。。。还是使用类成员标志$found B更好


您可以使用工厂模式或类似的模式

<?php

class UserFactory {
    static function createUser($username) {
        if($username == 'something') {
            return new User();
        } else {
            return null;
        }
    }
}

class User {}

$user1 = UserFactory::createUser('something');
$user2 = UserFactory::createUser('somethingElse');
var_dump($user1,$user2);

您可以使用工厂模式或类似的模式

<?php

class UserFactory {
    static function createUser($username) {
        if($username == 'something') {
            return new User();
        } else {
            return null;
        }
    }
}

class User {}

$user1 = UserFactory::createUser('something');
$user2 = UserFactory::createUser('somethingElse');
var_dump($user1,$user2);

不可能直接从_构造方法中返回null,但是您可以编写一个工厂,或者在失败时返回null,如上面的Felippe所示。但一般来说,返回可为null的值是一种危险的模式:在某个时刻,您可能会忘记检查null。您可能会喜欢将作为一种替代方法。

不可能直接从_构造方法中返回null,但是您可以编写一个工厂,或者在失败时返回null,如Felippe上面所示。但一般来说,返回可为null的值是一种危险的模式:在某个时刻,您可能会忘记检查null。您可能会喜欢另一种选择

object(User)#1 (0) {}
NULL