【问题标题】:PHP providing parameter visible only inslide classPHP提供参数仅在类中可见
【发布时间】:2014-11-24 11:15:54
【问题描述】:

我可能不了解 PHP OOP 系统的性质,所以这可能不是不可能的,但我想问一下有没有办法创建只能通过此类方法访问的参数?

我想创建仅在其中可见的“本地”类参数,因为现在如果我创建对象:$data = new MyClass();,它将返回:

object(MyClass)#1 (2) {
  ["secret"]=> string(33) "It should be not readable/visible"
  }
}

如何使object->secret$data 中不可见?

【问题讨论】:

  • private $attribute = 'whatever'; 它实际上是几乎所有编程语言中 oop 的基础
  • @Brewal 仍然不能阻止它在 var_dump() 调用期间被读取...(我不确定 OP 到底想要什么)
  • 我希望不会。 var_dump 用于调试...否则真的很讨厌
  • 如果var_dump 可以访问它,我的代码的所有其他部分你不明白我想隐藏它吗?
  • var_dump 是用于调试目的的 php 核心的一部分。确保您的私有变量只能从类本身访问

标签: php oop visibility


【解决方案1】:
class myClass {
    private $myvariable;

    private function myFunction() {

    }
}

这使得只有 $myVariable 和 myFunction 可以在 myClass 中访问

【讨论】:

  • 但是当我这样做时,我得到Call to a member function myFunction() on a non-object in $data = new myClass(); var_dump($data->myFunction());
  • 在我的评论中,我谈到了您提供的代码 - 测试它,您将收到错误 Call to a member function...
  • 你不能调用这个函数,因为它是私有的
  • 但是当它公开时我仍然明白。
  • [30-Sep-2014 01:47:26 Europe/Berlin] PHP 致命错误:从 /Users/nicholasyoung/Desktop/index 中的上下文 '' 调用私有方法 myClass::myFunction() .php 在第 15 行
猜你喜欢
  • 1970-01-01
  • 2019-03-20
  • 2016-07-02
  • 2016-08-04
  • 1970-01-01
  • 2021-12-03
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多