PHP从构造函数调用的函数中获取值

时间:2015-06-18 19:28:10

标签: php class constructor

我有一种感觉,我忽略了一些简单的东西,但我无法弄清楚如何从我班级中的构造函数调用的函数中获取值。下面是一个非常简单的例子,但实际上,我需要在我的index.php页面上使用userId值,该值由构造函数调用的函数getUser返回。

提前感谢您的帮助!

的index.php:

$test = new Test($username);
//Need to get value of userId here....

类/功能:

class Test
{
    //CONSTRUCTOR
    public function __construct($username)
        {
            $this->getUserId($username);
        }

    //GET USER ID   
    public function getUserId($username)
        {
            //DB query here to get id
            return $userId;
        }
}

我应该补充一点,我知道我可以初始化类然后从index.php调用函数并以这种方式获取值。这是一个非常简单的示例,但我正在调用6或7的一些脚本在构造函数中运行以执行各种任务。

1 个答案:

答案 0 :(得分:0)

您忘记在构造函数中返回$this->getUserId($username);的值,但这并不重要,因为PHP构造函数不返回值。在启动对象后,您必须再次调用以获取该值。

$test = new Test();
$userId = $test->getUserId($username);

class Test
{
    // constructor no longer needed in this example

    //GET USER ID   
    public function getUserId($username)
    {
        //DB query here to get id
            return $userId;
    }
}

或许更为明智:

$test = new Test($username);
$userId = $test->getUserId();

class Test
{
    protected $username;

    public function __construct($username) 
    {
        $this->username = $username;
    }

    //GET USER ID   
    public function getUserId()
    {
        // username is now access via $this->username

        //DB query here to get id
            return $userId;
    }
}