PHP私有或隐藏类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP私有或隐藏类相关的知识,希望对你有一定的参考价值。

我试图只允许访问某些名称空间内的某些php类。是否有办法或解决方法使PHP类仅在类似C#的内部作用域的命名空间中可见或可访问?

答案

在PHP中,您不能拥有嵌套类。

您可以使用名称空间和私有成员。

// Root namespace
namespace MyParentClass 

  use MyParentClass\PrivateClass\PrivateNode;

  class Node
  
    private $privateClass;

    public function getPrivateClass()
    
      if (!isset($this->privateClass)) 
        $this->privateClass = new PrivateNode();
      

      return $this->privateClass;
    
  


// Pseudo scope
namespace MyParentClass\PrivateClass

  class PrivateNode
  
    private $name = 'PrivateNode';

    public function getName()
    
      return $this->name;
    
  


// Test script
namespace

  $node = new MyParentClass\Node();

  echo $node->getPrivateClass()->getName();

?>

希望这可以帮助。

注意:Daniel给匿名类添加了一个链接,这可能是另一种有趣的方式。

以上是关于PHP私有或隐藏类的主要内容,如果未能解决你的问题,请参考以下文章

如何从像 android.jar 这样的 jar 中“隐藏”私有类/成员/方法

Java基础知识

类-封装

数据隐藏和 Objective-C 合成器 [重复]

C# 私有(隐藏)基类

面向对象特征