是否有必要在php类中声明函数的参数?

时间:2013-06-27 16:23:02

标签: class oop properties

我正在尝试学习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,不确定。

1 个答案:

答案 0 :(得分:0)

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

无论如何,这里没有魔法,你宣称一个类$a和$ b变量(类属性):然后你写了方法add,它取一个< strong> local 参数($c),并将其添加到当前对象的$ a和$ b属性中。

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

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

e.g:

class main {
   ...
   var $c;

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

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