2015-11-01 47 views
1

我想在PHP类中构建一个函数,但无论何时调用该函数,我只返回第一个变量。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; 
    } 

} 

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

+0

这看起来好像没什么问题。你如何使用这门课? – sdayal

+0

我添加了设置并获取了用于修改类的组件,我不认为这是问题。显然是的。当我调用总和功能时,我试图获取私有变量,当我应该使用我在swtich语句中定义的名称时。 – League

+0

是的,有时问题出现在意想不到的地方:) – sdayal

回答

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

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

$numObj = new Nums(); 
echo $numObj->sum(); 

运行这段代码,我返回15

0

它为我工作。这是我的尝试,它输出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; 

?> 

OUTPUT:

15