【问题标题】:php inner class to represent nodes in stacks, queues, binary search tree etcphp 内部类来表示堆栈、队列、二叉搜索树等中的节点
【发布时间】:2014-02-26 11:12:29
【问题描述】:

在 PHP 中创建内部类的有效且安全的方法是什么?我已经看到了诸如Nested or Inner Class in PHP 之类的解决方案,但是在算法中使用这种类型的检查将对算法函数的每个节点进行大量处理。

我一直在使用 PHP 中的某些算法,而在 PHP 中创建算法时,这似乎是一个很大的妥协。我可以让节点类将所有变量都设为公开,但这绝不是理想的方法。我还没有看到太多 PHP 算法示例,我开始怀疑人们是否因为这样的妥协而不用 PHP 构建它们?

【问题讨论】:

    标签: php algorithm


    【解决方案1】:

    使用提供接口来实现上述功能的标准库怎么样?

    SplQueueSplStackSplHeap 非常接近一棵树。

    在没有更多上下文的情况下很难评论高效和安全,但是类的安全性仍然是您的责任,可见性关键字可以帮助您。

    【讨论】:

    • 谢谢,我希望使用自己的实现具有更大的灵活性,但扩展这些 Spl 类可能是坚持使用 PHP 时最明智的方式
    【解决方案2】:

    Nested or Inner Class in PHP 中所述,PHP 无法使用嵌套类。

    PHP 使用名称空间进行组织,就像 Java 使用包一样。 但是对于封装,PHP 中没有这样的构造,因为它不是必需的。

    节点遍历算法等使用具有 getter 或公共属性和组合的 Node 对象。

    【讨论】:

    • 谢谢,我宁愿在节点上没有公共属性,但可能不得不解决这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多