Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 有必要在php类中声明函数的参数吗?_Class_Oop_Properties - Fatal编程技术网

Class 有必要在php类中声明函数的参数吗?

Class 有必要在php类中声明函数的参数吗?,class,oop,properties,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。它直接从调

我正在努力学习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的魔术方法,不确定。

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

无论如何,这里没有什么神奇之处,您使用
$a
和$
b
变量(类属性)声明了一个类:然后编写了add方法,该方法使用一个局部参数(
$c
),并将其添加到当前对象的属性$
a
和$b中

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

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

e、 g:


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

另一方面,你不再需要这些var关键字了。Shinosha,你能告诉我为什么不再需要使用var关键字了吗?因为它已经被弃用了。谢谢你的宝贵信息。
class main {
   ...
   var $c;

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