<?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();
}
?>
请指出我在哪里出错了。我还没有得到输出。
答案 0 :(得分:1)
有些事情你做错了,例如:
$numbers = new SimpleClass; ... $numbers->output_the_sum();
。在the_sum()
方法
$total = $number1+$number2;
您没有在$number1
方法中声明名为$number2
和the_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