如何从PHP中的类返回TRUE | FALSE

Sup*_*vah 0 php conditional return class

我想知道为什么我的php程序在其他地方包含类时没有返回正确的TRUE FALSE值

它就是这样的

source: signup.php

class signup
{
    function buildProfile()
    {
        if($logic){
            $this->success = TRUE;
        }else{
           $this->success = FALSE;
        }
    }
    function __construct()
    {
        $this->success = NULL;
        $this->buildProfile
        return $this->success;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在其他地方

include('signup.php');

$signup = new signup();

if($signup){
    successFunction();
}else....
Run Code Online (Sandbox Code Playgroud)

但它并没有得到$ signup == true,它每次都变得虚假

Vot*_*ple 24

构造函数始终返回类的新实例.您不能从构造函数返回任何其他类型的值.构建代码的更好方法是:

source: signup.php

class Signup
{
    public $success;
    protected function buildProfile()
    {
        if($logic){
            $this->success = true;
        }else{
            $this->success = false;
        }
    }
    public function __construct()
    {
        $this->success = null;
        $this->buildProfile();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,当你构造对象时,你可以做:

include('signup.php');

$signup = new Signup();

if($signup->success){
    successFunction();
}else....
Run Code Online (Sandbox Code Playgroud)

  • 关于"如果你正在使用PHP4"评论:没有人应该使用PHP 4 ...它甚至不再维护,甚至没有安全相关的错误.如果在PHP中学习OOP,那就必须使用PHP 5!(并考虑使用__construct,它毕竟是PHP 5:"public/var"事物不是唯一改变的东西) (4认同)