【问题标题】:PHP add two numbers in classPHP在类中添加两个数字
【发布时间】:2015-11-01 09:55:28
【问题描述】:

我正在尝试在 PHP 类中构建一个函数,但是每当我调用该函数时,我只返回第一个变量。

        class Nums  
{
    private $a = 7;
    private $b = 8;

    public function sum() 
    {
        return $this->a + $this->b;
    }

    public function __set($name,$value) {
      switch($name) { 
        case 'a': 
          return $this->setA($value);
        case 'b': 
          return $this->setB($value);
      }
    }

    public function __get($name) {
      switch($name) {
        case 'a': 
          return $this->getA();
        case 'b': 
          return $this->getB();
      }
    }

    private function setA($i) {
      $this->a = $i;
    }

    private function getA() {
      return $this->$a;
    }

    private function setB($i) {
      $this->b = $i;
    }

    private function getB() {
      return $this->$b;
    }

}

我在这里做错了什么吗,因为我真的看不出这个逻辑有什么问题。

【问题讨论】:

  • 这对我来说很好。你是如何使用这个类的?
  • 我添加了用来修改类的 set 和 get 组件,我不认为这是问题所在。显然是的。当我调用 sum 函数时,我试图获取私有变量,而我应该使用我在 swtich 语句中定义的名称。
  • 是的,有时问题会出现在意想不到的地方:)

标签: php class variables add


【解决方案1】:

它对我有用。这是我尝试过的,它输出15

PHP 代码:

<?php

class Nums  
{
    private $a = 7;
    private $b = 8;

    public function sum() 
    {
        return $this->a + $this->b;
    }

}

$obj = new Nums();
$c = $obj->sum();
echo $c;

?>

输出:

15

【讨论】:

    【解决方案2】:
      class Nums  
      {
        private $a = 7;
        private $b = 8;
    
        public function sum() 
        {
            return $this->a + $this->b;
        }
      }
    
    $numObj = new Nums();
    echo $numObj->sum();
    

    运行此代码为我返回 15

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 1970-01-01
      • 2012-01-18
      • 2018-12-28
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      相关资源
      最近更新 更多