PHP OOP只需添加两个数字即可

时间:2016-10-29 05:58:39

标签: php

<?php
    class SimpleClass{


        var $number1;
        var $number2;

        public function input_two_no($num1,$num2){
            $this->number1=$num1;
            $this->number2=$num2;
        }

        public function the_sum(){
            $total = $number1+$number2;
            return $total;
        }

        public function output_the_sum(){
            echo $total;
        }

        $numbers = new SimpleClass;
        $numbers->input_two_no(10,5);
        $numbers->the_sum();
        $numbers->output_the_sum();

    }

?>

请指出我在哪里出错了。我还没有得到输出。

2 个答案:

答案 0 :(得分:1)

有些事情你做错了,例如:

  • 在课堂外使用此代码块$numbers = new SimpleClass; ... $numbers->output_the_sum();
  • the_sum()方法

    中查看此语句
    $total = $number1+$number2;
    

    您没有在$number1方法中声明名为$number2the_sum()的任何局部变量。相反,您应该在这里使用实例变量。

  • 请参阅output_the_sum()方法

    中的此语句
    echo $total;
    

    您没有在$total方法中声明任何名为output_the_sum()的局部变量。而是创建一个名为$total的实例变量,并将sum值存储在此实例变量中。之后,您可以使用echo $this->total;显示总和值。

所以你的代码应该是这样的:

class SimpleClass{
    var $number1;
    var $number2;
    var $total;

    public function input_two_no($num1,$num2){
        $this->number1=$num1;
        $this->number2=$num2;
    }

    public function the_sum(){
        $this->total = $this->number1+$this->number2;
    }

    public function output_the_sum(){
        echo $this->total;
    }

}

$numbers = new SimpleClass;
$numbers->input_two_no(10,5);
$numbers->the_sum();
$numbers->output_the_sum();

答案 1 :(得分:1)

  

首先,您不需要2种方法。 input_two_no($num1,$num2)output_the_sum()。但是,您可以创建一个基本的构造函数方法。其次,要访问成员变量(Properties),您需要使用php对象访问表示法(->)。你的班级应该如下所示。 sum方法本身返回作为参数传递的2个数字的总和。

    class SimpleClass{


        var $number1;
        var $number2;

        public function __construct($num1=null, $num2=null){
            $this->number1  = $num1;
            $this->number2  = $num2;
        }

        public function the_sum($number1=null, $number2=null){
            if(!is_null($number1) && !is_null($number2)){
                return null;
            }

            if( (!is_int($number1) || !is_float($number1) || !is_double($number1)) &&
                (!is_int($number2) || !is_float($number2) || !is_double($number2))
            ){
                return 'Numeric inputs only...';
            }
            $this->number1  = $number1;
            $this->number2  = $number2;
            return $this->number1 + $this->number2;
        }

    }

        $numbers = new SimpleClass;
        $output  = $numbers->the_sum(10,5);
        echo $output;       //<==   YIELDS 15