与流行的观点相反,PHP中的函数名不区分大小写,对于类构造函数来说是相同的。您的case
应该已经有效。试试这个
<?php
class TestClass {
var $testValue;
}
$a=new testclass();
$b=new TestClass();
$c=new TESTCLASS();
print_r($a);
print_r($b);
print_r($c);
?>
根据PHP Manual
注:函数名是不区分大小写的,但它通常是很好的形式调用函数,因为他们出现在他们的声明。
这也适用于你的类方法。
解决方法/更好的方式来命名这些类
下面将确保类名称将永远是准确的情况下,被你定义,无所谓其中case
用户输入其
<?php
class TestClass {
var $testValue;
}
$userEnteredValue="testCLASS";
$myClasses=get_declared_classes();
$classNameIndex=array_search(strtolower($userEnteredValue), array_map('strtolower', $myClasses));
if($classNameIndex!==FALSE)
{
$classNameShouldBe=$myClasses[$classNameIndex];
echo $classNameShouldBe;
}
else
{
echo "This class is undefined";
}
?>
我使用class_exists(不区分大小写)来检查类是否实际存在 – 3rgo 2013-04-23 14:09:45
就像拼写应该是正确的,案例也应该是正确的。你怎么会认为拼写是正确的,但可能是不正确的? – 2013-04-23 14:10:21
@ Squ36,啊。所以class_exists()给出了true,但是如果case错误,实例化可能会出错。这是你的问题吗? – 2013-04-23 14:11:09