PHP类中的属性范围

问题描述 投票:0回答:1

我需要的

能够访问方法$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,一切都像一个魅力。

php class methods properties scope
1个回答
1
投票

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

$result = self::fill_default_values();

然后$result应该有一个值

© www.soinside.com 2019 - 2024. All rights reserved.