实体具有“公共”变量

时间:2013-01-02 14:32:31

标签: symfony doctrine

我现在正在学习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;

有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:6)

受保护不公开!

private scope当您希望变量仅在其自己的类中可见时。

protected scope当您希望在扩展当前类(包括父类)的所有类中显示变量时。

这个例子没有太大的区别。 SF文档中的代码对继承更加开放,这就是全部。两者都有效。

(来源:What is the difference between public, private, and protected?