Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建简单的oop算术函数_Php_Oop - Fatal编程技术网

Php 创建简单的oop算术函数

Php 创建简单的oop算术函数,php,oop,Php,Oop,我是oop新手。我就是不能调试这个简单的代码。我不知道为什么争论没有通过它 class MyCalculator { private $_fval, $_sval; public function add($fval, $sval) { return $this->_fval + $this->_sval; } public function subtract($fval, $sval) {

我是oop新手。我就是不能调试这个简单的代码。我不知道为什么争论没有通过它

class MyCalculator {  
    private $_fval, $_sval;  

    public function add($fval, $sval) {  
        return $this->_fval + $this->_sval;  
    }  

    public function subtract($fval, $sval) {  
        return $this->_fval - $this->_sval;  
    }  

    public function multiply($fval, $sval) {  
        return $this->_fval * $this->_sval;  
    }  

    public function divide($fval, $sval) {  
        return $this->_fval / $this->_sval;  
    }  
}  

$mycalc = new MyCalculator;   
echo $mycalc-> add(12,6); 
echo $mycalc-> multiply(12,6); 
echo $mycalc-> subtract(12,6);  
echo $mycalc-> divide(12,6); 

如果您想让代码使用类属性工作,您可以这样做

构造函数用于加载类属性,然后每个方法不需要自己的参数

class MyCalculator {  
    private $_fval, $_sval;  

    public function __construct($fval, $sval) {
        $this->_fval = $fval;
        $this->_sval = sval;
    }

    public function add() {  
        return $this->_fval + $this->_sval;  
    }  

    public function subtract() {  
        return $this->_fval - $this->_sval;  
    }  

    public function multiply() {  
        return $this->_fval * $this->_sval;  
    }  

    public function divide() {  
        return $this->_fval / $this->_sval;  
    }  
}  

$mycalc = new MyCalculator(12,6);   
echo $mycalc-> add(); 
echo $mycalc-> multiply(); 
echo $mycalc-> subtract();  
echo $mycalc-> divide(); 
现在来纠正你的做法

class MyCalculator {  

    //private $_fval, $_sval;  not used so not needed

    public function add($fval, $sval) {  
        return $fval + $sval;  
    }  

    public function subtract($fval, $sval) {  
        return $fval - $sval;  
    }  

    public function multiply($fval, $sval) {  
        return $fval * $sval;  
    }  

    public function divide($fval, $sval) {  
        return $fval / $sval;  
    }  
}  


$mycalc = new MyCalculator();   
echo $mycalc-> add(12,6); 
echo $mycalc-> multiply(12,6); 
echo $mycalc-> subtract(12,6);  
echo $mycalc-> divide(12,6); 
现在最好将其设置为静态类,因为它基本上只是一个函数库,没有实例数据

class MyCalculator {  

    public static function add($fval, $sval) {  
        return $fval + $sval;  
    }  

    public static function subtract($fval, $sval) {  
        return $fval - $sval;  
    }  

    public static function multiply($fval, $sval) {  
        return $fval * $sval;  
    }  

    public static function divide($fval, $sval) {  
        return $fval / $sval;  
    }  
}  

//$mycalc = new MyCalculator(12,6); static classes dont need to be instantiated
echo MyCalculator::add(12,6); 
echo MyCalculator::multiply(12,6); 
echo MyCalculator::subtract(12,6);  
echo MyCalculator::divide(12,6); 

如果您想让代码使用类属性工作,您可以这样做

构造函数用于加载类属性,然后每个方法不需要自己的参数

class MyCalculator {  
    private $_fval, $_sval;  

    public function __construct($fval, $sval) {
        $this->_fval = $fval;
        $this->_sval = sval;
    }

    public function add() {  
        return $this->_fval + $this->_sval;  
    }  

    public function subtract() {  
        return $this->_fval - $this->_sval;  
    }  

    public function multiply() {  
        return $this->_fval * $this->_sval;  
    }  

    public function divide() {  
        return $this->_fval / $this->_sval;  
    }  
}  

$mycalc = new MyCalculator(12,6);   
echo $mycalc-> add(); 
echo $mycalc-> multiply(); 
echo $mycalc-> subtract();  
echo $mycalc-> divide(); 
现在来纠正你的做法

class MyCalculator {  

    //private $_fval, $_sval;  not used so not needed

    public function add($fval, $sval) {  
        return $fval + $sval;  
    }  

    public function subtract($fval, $sval) {  
        return $fval - $sval;  
    }  

    public function multiply($fval, $sval) {  
        return $fval * $sval;  
    }  

    public function divide($fval, $sval) {  
        return $fval / $sval;  
    }  
}  


$mycalc = new MyCalculator();   
echo $mycalc-> add(12,6); 
echo $mycalc-> multiply(12,6); 
echo $mycalc-> subtract(12,6);  
echo $mycalc-> divide(12,6); 
现在最好将其设置为静态类,因为它基本上只是一个函数库,没有实例数据

class MyCalculator {  

    public static function add($fval, $sval) {  
        return $fval + $sval;  
    }  

    public static function subtract($fval, $sval) {  
        return $fval - $sval;  
    }  

    public static function multiply($fval, $sval) {  
        return $fval * $sval;  
    }  

    public static function divide($fval, $sval) {  
        return $fval / $sval;  
    }  
}  

//$mycalc = new MyCalculator(12,6); static classes dont need to be instantiated
echo MyCalculator::add(12,6); 
echo MyCalculator::multiply(12,6); 
echo MyCalculator::subtract(12,6);  
echo MyCalculator::divide(12,6); 
$this指的是类在其中定义函数的对象。如果您注意到,您在类属性中使用了$fval,在方法参数中使用了$fval。这些都不相关

class MyCalculator
{
     public function add($fval, $sval)
     {
         return $fval + $sval;
     }
...
}
如果试图设置和使用对象的属性,以便以后调用它们,则需要在方法中设置它们的值:

class MyCalculator
{
     private $_fval, $_sval;
     public function add($fval, $sval)
     {
         $this->_fval = $fval;
         $this->_sval = $sval;
         return $this->_fval + $this->_sval;
     }
...
}
在您的用例中,设置和使用这些私有属性对您没有好处。这是多余的。除非你让他们这样做,否则他们不会相互联系或相互依赖

属性被设置为可以被对象的方法使用,也可以公开显示,并且与发送到方法的参数无关。您对它们进行了类似的命名,但这不会以任何方式连接它们。

$这指的是类在其中定义函数的对象。如果您注意到,您在类属性中使用了$fval,在方法参数中使用了$fval。这些都不相关

class MyCalculator
{
     public function add($fval, $sval)
     {
         return $fval + $sval;
     }
...
}
如果试图设置和使用对象的属性,以便以后调用它们,则需要在方法中设置它们的值:

class MyCalculator
{
     private $_fval, $_sval;
     public function add($fval, $sval)
     {
         $this->_fval = $fval;
         $this->_sval = $sval;
         return $this->_fval + $this->_sval;
     }
...
}
在您的用例中,设置和使用这些私有属性对您没有好处。这是多余的。除非你让他们这样做,否则他们不会相互联系或相互依赖


属性被设置为可以被对象的方法使用,也可以公开显示,并且与发送到方法的参数无关。您对它们进行了类似的命名,但这不会以任何方式连接它们。

当您将值直接传递给函数时,您不会使用$this,第一个选项是:return$fval+$sval;那么,什么时候使用$this?当你在处理一个类属性时,而不是在处理一个函数参数时,当你在对象中添加值时-这对S.O来说越来越广泛,有很多很好的基本OOP教程可用。你能推荐一个好的OOP教程吗?当你将值直接传递给函数时,你不用$this,第一个就是:return$fval+$sval;那么什么时候使用$this?当您寻址类属性时,当你在处理一个函数参数的时候,当你在对象中添加值的时候,这对S.O来说是很广泛的。有很多很好的基本OOP教程可供选择。你能推荐一个好的OOP教程吗?我懒得输入这个:-现在给出一个演示,其中参数被传递到对象而不是构造函数中:-@Dagon好的,我会给你一个静态类我懒得输入这个:-现在给你一个演示,其中参数被传递到对象而不是构造函数中:-@Dagon好的,我会给你一个静态类