PHP类中的属性范围

Posted

tags:

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

我需要的

能够访问方法$result中方法fill_default_values中定义的prop html

摘要

我有两种方法,fill_default_valueshtmlAdmin。当我在$result内部调用它时,我无法从fill_default_values内部访问道具html

fill_default_values

  // grabs values from DB and fills inputs on ADMIN PAGE
  protected static function fill_default_values() {
    global $wpdb;

    $table_name = $wpdb->prefix.'bb_slidersettings';
    $result = $wpdb->get_results(
      "SELECT
       id
       FROM
       $table_name;"
    );

    if (!$result) {
    ?>

      <small class="text-red">Something went wrong</small>

    <?php
    } // endif

    return $result;
  }// fill_default_values()

html

  // Outputs HTML to main admin page
  public static function html() {
    self::fill_default_values();

    ?>

    <!-- BEGIN HTML -->
    <form id="bb-carousel-form" action="" method="POST">
      <input name="carousel_id" type="hidden" value="<?php echo $result[0]->id; ?>">
  }

您可以看到我创建了fill_default_values方法并从html内部调用它,我希望$result可用。相反,我收到此错误消息。

error

<br />
<b>Notice</b>:  Undefined variable: result in <b>[FILE PATH]</b> on line <b>120</b><br />
<br />
<b>Notice</b>:  Trying to get property 'id' of non-object in <b>[FILE PATH]</b> on line <b>120</b><br />

奇怪的是,如果我将整个fill_default_values移动到html,一切都像一个魅力。

答案

您需要像这样捕获返回的值

$result = self::fill_default_values();

然后$result应该有一个值

以上是关于PHP类中的属性范围的主要内容,如果未能解决你的问题,请参考以下文章

类中的 PHP 全局变量范围

如何让片段中的多个视图调用片段类中声明的相同 onClick 函数?

PHP 范围解析操作符 (::)

从片段类中的对话框添加项目到recyclerview。

PHP类:全局变量作为类中的属性

PHP7 匿名类中的静态属性