0

我正在尝试学习 php 类。我对哪些属性应该在类中声明感到困惑。我举一个简单的例子来理解这种情况:

class main{
var $a=5;
var $b;
 function add($c){
 return $this->a + $this->b + $c;
 }
}

$load = new main();
$load-> $b=10;
echo $load->add(20); //will output 35

在上述情况下,请注意我没有在类中声明属性 $c。它直接从调用 $load->add(20) 访问,并且运行良好。我的问题是虽然这是有效的,但这是正确的方式还是在这种情况下我必须声明 $c 属性?注意:这可能是由于 oop 的设置魔法方法而起作用,不确定。

4

1 回答 1

0

有一些错误,类名(main)之后的括号和var $b之前的$,倒数第二行b之前的$。

无论如何,这里没有魔法,你声明了一个带有$a和 $b变量的类(类属性):然后你编写了 add 方法,它接受一个局部参数 ( $c),并将其添加到a当前对象的属性 $ 和 $b 中。

方法执行后,您将丢失传递给方法的值,分配给$c.

$c您的示例是正确的,如果您只想以这种方式使用它,则不必声明;相反,如果要将它用作对象属性,则需要在其他类属性中声明它,例如在另一个方法中使用它。在这种情况下,您必须首先在类中声明它,然后将其用作$this->c

例如:

class main {
   ...
   var $c;

   function test($c){
     $this->c = $c;
     ...
   }
}

注意$this->c$c是两个不同的变量:$c只是在方法的范围内,如前所述。

于 2013-06-27T16:40:50.950 回答