PHP:在构造函数中调用require_once

时间:2016-10-29 14:54:39

标签: php constructor require-once

require_once在构造函数中,不工作我也试过include和require。 file_exists功能正常。

这是我的代码:

<?php

class App {

    protected $controller = 'home';
    protected $method = 'index';
    protected $params = [];

    public function __construct() {
        $url = $this->parseUrl();
        //print_r($url);

        if(file_exists(__DIR__.'/../controllers/'. $url[0] . '.php')) {
            $this->controller = $url[0];
            unset($url[0]);
        }

        require_once(__DIR__.'/../controllers/Home.php');
        echo $this->controller;

    }
}

1 个答案:

答案 0 :(得分:-1)

我认为它有效。但是,您的代码将始终尝试包含__DIR__.'/../controllers/Home.php',而不是您在file_exists来电中测试的文件。

我想你想做这样的事情:

if(file_exists(__DIR__.'/../controllers/'. $url[0] . '.php')) {
    require_once(__DIR__.'/../controllers/'. $url[0] . '.php');
    $this->controller = $url[0];
}