我现在正在学习Symfony2,在我阅读的每个教程中,都有protected
个变量,例如:
/**
* @ORM\Column(type="decimal", scale=2)
*/
protected $price;
/**
* @ORM\Column(type="text")
*/
protected $description;
我从命令行生成器得到的是:
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="game", type="integer")
*/
private $game;
有人可以解释为什么会这样吗?
答案 0 :(得分:6)
受保护不公开!
private scope
当您希望变量仅在其自己的类中可见时。
protected scope
当您希望在扩展当前类(包括父类)的所有类中显示变量时。
这个例子没有太大的区别。 SF文档中的代码对继承更加开放,这就是全部。两者都有效。
(来源:What is the difference between public, private, and protected?)