【问题标题】:Simple PHP class简单的 PHP 类
【发布时间】:2016-11-08 13:54:00
【问题描述】:

我正在学习 php 并创建了以下课程,但我似乎无法弄清楚为什么它会给我以下错误:

144

警告:缺少 setters::set_a() 的参数 1,在第 19 行的 C:\xampp\htdocs\php\accessmod2.php 中调用,并在第 19 行的 C:\xampp\htdocs\php\accessmod2.php 中定义9

注意:未定义变量:第 11 行 C:\xampp\htdocs\php\accessmod2.php 中的值

<?php

class setters{
    private $a = 144;
    public function get_a(){
        return $this->a;
    }

    public function set_a($value){

        $this->a = $value;
    }
}

$example = new setters();

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
echo $example->set_a()."<br />";

?>

【问题讨论】:

  • set_a 需要一个参数,echo $example-&gt;set_a() 没有。
  • function set_a($value) 要求您在调用该方法时提供一个值。 $example-&gt;set_a()
  • 您可能是想在最后一行调用$example-&gt;get_a() 以查看上一行的效果。
  • @S.I.为什么要进行这个编辑?这不是原始代码...
  • @Berserk 我不知道这里发生了什么。我将使用原始代码对其进行编辑。我真的不知道..

标签: php


【解决方案1】:

您必须为set() 函数使用一个参数。但在你的情况下,我想你只是想看看 set() 函数是否有效。所以使用get() 函数。

所以改成这个:

echo $example->get_a()."<br />";
$example->set_a(15)."<br />";
echo $example->get_a()."<br />";

结果是:

144
15

【讨论】:

    【解决方案2】:

    检查你的最后一行:

    echo $example->set_a()."<br />";
    

    set_a() 需要一个参数,但它是空的。如果您像这样更改它,它将起作用:

    echo $example->set_a('someparameterhere')."<br />";
    

    【讨论】:

      【解决方案3】:

      您对-&gt;set_a 的第二次调用需要一个参数:

      <?php
      
      class setters{
          private $a = 144;
          public function get_a(){
              return $this->a;
          }
      
          public function set_a($value){
      
              $this->a = $value;
          }
      }
      
      $example = new setters();
      
      echo $example->get_a()."<br />";
      $example->set_a(15)."<br />";
      $example->set_a(23)."<br />"; // ◄■■■ PARAMETER FOR "SET_A".
      
      ?>
      

      您也可以使用“可选”参数:

      <?php
      
      class setters{
          private $a = 144;
          public function get_a(){
              return $this->a;
          }
      
          public function set_a( $value = -1 ){ // ◄■■■ OPTIONAL PARAMETER.
      
              $this->a = $value;
          }
      }
      
      $example = new setters();
      
      echo $example->get_a()."<br />";
      $example->set_a()."<br />"; // ◄■■■ OPTIONAL PARAMETER ($a = -1).
      echo $example->get_a()."<br />"; // ◄■■■ NEW VALUE = -1.
      ?>
      

      【讨论】:

        【解决方案4】:

        你打电话给set_a两次

        设置后,需要调用get_a显示值。

        echo $example->get_a()."<br />";
        $example->set_a(15)."<br />";
        echo $example->get_a()."<br />";
        

        【讨论】:

          猜你喜欢
          • 2017-03-29
          • 2011-04-22
          • 2018-09-12
          • 2013-09-06
          • 2011-10-29
          • 2014-01-03
          • 2014-06-25
          • 1970-01-01
          • 2014-02-19
          相关资源
          最近更新 更多