PHP如何实例化内部类


PHP How to instance an inner class

我有一个名为Pages的类用作命名空间,如下所示:

<?php
static class Pages
{
    class Page
    {
        public $Name;
        public $Title;
        public function __construct($Name, $Title)
        {
            $this->Name = $Name;
            $this->Title = $Title;
        }
    }
}
?>

其他地方:

<?php
$g_Pages = new Pages::Page("My Name", "My Title");
?>

不幸的是,我收到了一个解析错误:语法错误,意外的"Page"(T_STRING),应为变量(T_variable)或"$"

我做错了什么?

如果您试图将内部类用作名称空间,只需使用名称空间。例如:

<?php
namespace Pages;
class Page { }

然后你可以通过访问该类

$g_Pages = new 'Pages'Page("My Name", "My Title");

http://php.net/namespaces

不幸的是,嵌套类不是PHP的语言特性。

下面的SO页面对此进行了详细解释。

PHP 中的嵌套类或内部类