我正在用PHP和Laravel学习OOP。到目前为止,我的想法是variable
和property
大致相同。 Methods
等同于functions
。但是有时我在许多文章中看到它们代表variable
和property
略有不同。例如,在laravel naming conventions中,模型属性和变量具有不同的术语。 variable
和property
之间有什么区别(如果有)?
答案 0 :(得分:4)
是的,方法是一个函数。
Model属性将是类中的全局变量,因此您可以在所有方法中使用它。并且根据访问修饰符(私有,受保护,公共),可以从继承自该类的其他类中使用模型属性。
变量将在方法内使用,并且仅在该方法的主体内使用。
答案 1 :(得分:1)
属性是属于对象的变量。也称为“成员”。恕我直言,主要区别在于范围。如果将public用作可见性,则变量仅在方法内可用,但在整个Class中以及对象中均是属性。 http://php.net/manual/en/language.oop5.visibility.php
答案 2 :(得分:-1)
PHP OOP中的属性(也称为成员变量)是存在于类内部的变量,并且必须是私有的,受保护的或公共的。例如:
class Bird {
private $color; // This is a property of the Bird class
}
$var = 123; // This is just a normal variable
因此,文档所引用的 Model属性仅仅是模型的成员变量。
就功能和方法之间的区别而言,它们相似,除了主要区别在于:方法是存在于类内部的函数,并且必须是私有的,受保护的或公共的。例如:
class Bird {
public function sing() { // This is a method
echo 'tweet-tweet';
}
}
function sayHello() { // This is a function
echo 'hello';
}
注意:如果您未将属性或方法声明为私有,受保护或公共,则假定该属性或方法是公共的