2013-06-27 56 views
0

我想学习php类。我很困惑哪些属性应该在类中声明。我给一个简单的例子来了解情况:是否有必要在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

在附注中,您不再需要这些var关键字。 – LMeyer

+0

Shinosha,你能告诉我为什么不需要用户var关键字了吗? – stockBoi

+0

因为它已被弃用。请参阅http://stackoverflow.com/questions/1206105/what-does-php-keyword-var-do – LMeyer

回答

0

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

总之,这里没有魔法,你声明的$a和一类$ b变量(类属性):那你写的方法添加,这需要一个本地参数($c),并将其添加到属性$ a和$ b的当前对象。

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

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

如:

class main { 
    ... 
    var $c; 

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

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

相关问题