2011-03-16 114 views
2

我試圖讓基本這兒類的定義和使用計算輸出是不希望

下面的代碼

<?php 

class calculator { 
    var $number1 = 4; 
    var $number2 = 5; 

    function add ($a,$b){ 
     $c = $a + $b; 
     print ("the sum of your numbers: $c"); 
     print ($c); 
    } 

} 

$cal = new calculator; 
$cal->add($number1,$number2); 

?> 

什麼出現在我的瀏覽器:

您的號碼之和:0

爲什麼不是9?

+0

你在哪裏定義'$ getal1'和'$ getal2'? – 2011-03-16 12:55:06

+0

這是一個翻譯錯誤。 getal表示荷蘭語中的數字。現在糾正。即使有這種修正,結果也是一樣的 – Immers 2011-03-16 12:56:01

+0

您發送的參數是'$ number1'和'$ number2'。他們是數字嗎? – alex 2011-03-16 12:56:32

回答

2

您傳遞的$number1$number2的值是多少? $number1$number2$cal->number1$cal->number2不相同。

您正在定義對象的兩個屬性,並將兩個不同的單獨變量傳遞到類的函數中。基本上有兩對數字 - 一個在對象中,數值爲4和5,一個在函數的外部,沒有任何值(都是0),然後再添加。

你可以試試這個:

<?php 
class calculator { 
    private $number1 = 4; 
    private $number2 = 5; 

    function add ($a, $b){ 
     $c = $this->$a + $this->$b; 
     print ("the sum of your numbers: $c"); 
     print ($c); 
    } 

} 

$cal = new calculator; 
$cal->add('number1', 'number2'); 

或者這樣:

<?php 
class calculator { 
    private $number1 = 4; 
    private $number2 = 5; 

    function add(){ 
     $c = $this->number1 + $this->number2; 
     print ("the sum of your numbers: $c"); 
     print ($c); 
    } 

} 

$cal = new calculator; 
$cal->add(); 

或者這樣:

<?php 
class calculator { 
    function add ($a, $b){ 
     $c = $a + $b; 
     print ("the sum of your numbers: $c"); 
     print ($c); 
    } 

} 

$cal = new calculator; 
$cal->add(4, 5); 
+0

上帝我今天真的很累。值分別爲4和5。即使如此,我仍然得到這個奇怪的零也與分配給number1和number2變量的值。 – Immers 2011-03-16 13:00:18

+0

greaet例子,非常明確! – Immers 2011-03-16 13:13:18

+1

我愛傑克丹尼爾斯! :P – alex 2011-03-16 23:17:02

2

$number1$number2正在類的範圍內聲明。

但是,當您撥打$cal->add($number1, $number2)時,您現在不在該範圍之內,因此這些值未定義。

+0

是的,這正是我忽略的!謝謝! – Immers 2011-03-16 13:14:36

4

您應該做

class calculator { 
    //... 
} 
$number1 = 4; 
$number2 = 5; 
$cal = new calculator; 
$cal->add($number1,$number2); 

class calculator { 
    var $number1 =4; 
    var $number2 =5; 
    //... 
} 
$cal = new calculator; 
$cal->add($cal->number1,$cal->number2); 
相關問題