我正在尝试学习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,不确定。
答案 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
就在方法的范围内,如前所述。