PHP如何实例化内部类

时间:2013-12-16 01:23:55

标签: php namespaces nested-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");

?>

不幸的是,我收到一个Parse错误:语法错误,意外的'Page'(T_STRING),期待变量(T_VARIABLE)或'$'

我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

以下SO页面详细说明了这一点。

Nested or Inner Class in PHP

答案 1 :(得分:2)

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

<?php
namespace Pages;
class Page { }

然后您可以通过以下方式访问该课程:

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

http://php.net/namespaces