php - 如何在 PHP 中使用内部类?

标签 php class inner-classes

我来自 Java 背景,我想在 php 中使用内部类。不过,每次我放置内部类时,都会出现语法错误。这可以用PHP吗?另外,我如何引用外部类?我可以访问其所有数据成员吗?

<?php

class OuterClass {
    var $x = 15;
    function __construct() {

    }

    class InnerClass {                  // error when InnerClass is static
        function __construct() {        // error when InnerClass is static
            echo $x;
        }
    }
}

?>

这用于特定纸牌游戏的 MoveClass(如移动)。我认为将这些类放在一起是很好的设计,因为它们分开没有意义。此外,MoveClass 需要了解 Game 类的一些数据成员。为什么不让它成为一个函数?实在是太大了。

编辑:

嵌套类呢?据我了解,那些必须是静态的? O_o

最佳答案

PHP 不允许内部类。如果您希望访问父类的所有数据成员,我建议您使用继承。

一个可能的选择:

class OuterClass {
    var $x = 15;
    function __construct() {

    }
}
class ChildClass extends OuterClass {
    function __construct() {
        parent::__construct();
    }
}

您可以通过引用类本身来调用父类的方法;在 PHP 中,您可以使用 parent 关键字来执行此操作。因此,要在类的上下文中引用方法而不是对象,我们使用 :: 而不是 ->

关于php - 如何在 PHP 中使用内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351782/

相关文章:

javascript - 如何将数组对象php显示到ajax js?

php - 如何避免多次加载 jQuery 脚本?

c++ - Visual Studio Express 中访问说明符后的缩进问题

java - 了解java中的事件监听器

PHP 无法加载动态扩展(无效的 ELF header )[PHP + Zephir]

php - 如何在没有空格的情况下将子 div 的内容放在父 div 旁边

php - 在php中包含另一个类中的一个类

JavaScript ES6 : Grouping methods in es6 classes?

java - 实例化新内部类时,内部类不是公共(public)错误

c++ - C++ 中嵌套模板类返回类型的头文件中函数返回类型的语法