lau*_*kok 2 php oop namespaces spl-autoload-register php-5.3
我namespace用于下面这样的课程,
class_tidy.php,
namespace foo;
class tidy {
public function hello() {
echo 'Hello';
}
}
Run Code Online (Sandbox Code Playgroud)
index.php文件,
class MyAutoloader
{
public static function load($className)
{
$parts = explode('\\', $className);
require 'classes/class_'.end($parts) . '.php';
}
}
spl_autoload_register("\MyAutoloader::load");
$test = new foo\tidy();
$test->hello();
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我想知道我是否可以访问该课程,而不是
$test = new foo\tidy();
Run Code Online (Sandbox Code Playgroud)
但,
$test = new foo::tidy();
Run Code Online (Sandbox Code Playgroud)
哪个看起来更漂亮.但是有了这个错误,
解析错误:语法错误,意外T_STRING,期待T_VARIABLE或'$'......
你不能.PHP语法\用于命名空间.
事实上,php只使用T_PAAMAYIM_NEKUDOTAYIM(这是双冒号的名称),在类名后面使用它来指定你想要该类的成员.
我相信在这种方式中有一些模糊的细节阻止了PHP将它用作命名空间sperator,但我不知道哪个.(问题是,这意味着即使你从官方的PHP分支并制作了自己的版本,你也必须经历大量工作才能获得你想要的轻微语法更改.)
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |