【问题标题】:Accessing private variable from static function in php从php中的静态函数访问私有变量
【发布时间】:2012-08-10 11:53:49
【问题描述】:

我的班级有一个私有变量

private $noms = array(
        "HANNY",
        "SYS",
        "NALINE"
);

我想通过静态方法访问它:

public static function howManyNom($searchValue){

        $ar = $this->noms;

        foreach($ar as $key => $value) {

...

但像往常一样,我无法使用 $this 检索它,因为静态方法上没有实例。

在我的静态函数中获取 $noms 的正确语法是什么?

【问题讨论】:

  • 将 $noms 数组也设为静态

标签: php static


【解决方案1】:

将此属性也设为静态!

private static $noms = array(
    "HANNY",
    "SYS",
    "NALINE"
);


public static function howManyNom($searchValue){

    $ar = self::$noms;

    foreach($ar as $key => $value) {

【讨论】:

  • 已经尝试过了,当我通过 self::noms 调用它时,它说 'nom' 未定义
  • 不错的镜头 ;) 我希望有一个解决方案可以让它不保持静止(它更干净),但这已经足够了 :) 谢谢
  • 我认为,在你的情况下,这是你能达到的最干净的方式:)
  • 解决了我的问题! :)
【解决方案2】:

要访问 $noms 数组使其成为静态,您可以这样做:

private static $noms = array();

然后您可以像这样访问它:

self::$noms['some key'];

【讨论】:

    【解决方案3】:

    您也必须将 noms 设为静态并通过 self::$noms 访问它。

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 1970-01-01
      • 2023-03-23
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2013-03-08
      • 2018-05-15
      相关资源
      最近更新 更多