與流行的觀點相反,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