编辑:
我修正了我的拼写错误,并且调用了一个类不是区分大小写的
我看到了如果我有
class A
{
public function __construct()
{
echo 'hello';
}
}
并执行此操作
if (class_exists('a'))
$class = 'a';
$a = new $class();
我会看到
hellohello
如果我发表评论if statement
,那么我没关系,它会echo
出
hello
如何阻止class_exists()
运行类构造函数?
编辑:
这是我的用法
foreach ($this->getNamespace() as $ns) {
//if (class_exists($ns . '\\' . $controller))
$controller = $ns . '\\' . $controller;
if (class_exists($ns . '\\' . $model))
$model = $ns . '\\' . $model;
}
$model = new $model($this->config);
$controller = new $controller($this->config);
答案 0 :(得分:2)
运行以下代码时:
class A
{
public function __construct()
{
echo 'hello';
}
}
if (class_exists('a'))
$class = 'a';
$a = new $class();
我明白了:
hello
您的问题可能在其他地方。
答案 1 :(得分:1)
您的示例代码中有一些错误。这是正确的代码:
<?php
class a // Class name is lower case
{
public function __construct() // It's __construct not __constructor
{
echo 'hello';
}
}
$class = 'stdClass';
if (class_exists('a')) { // Missing a closing parenthesis here
$class = 'a';
}
$a = new $class();
输出:
hello