在我的本地开发机器(php 5.3.14)上,我可以使用这样的类:
<?php
namespace Shop\Repository;
use Shop\Entity\Day;
use Doctrine\ORM\EntityRepository;
class Product extends EntityRepository
{
// Code
}
该类存储在 /my/src/Shop/Repository/Product.php(符合 PSR-0)中。我也有一个Shop\Repository\Day
位于/my/src/Shop/Repository/Day.php。
但是,在我的登台服务器(php 5.3.10)上,我收到以下错误:
PHP 致命错误:无法使用 Shop\Entity\Day 作为 Day,因为该名称已在第 5 行的 /my/src/Shop/Repository/Product.php 中使用
我可以理解该消息,如果我将 Shop\Entity\Day 导入别名为 DayEntity,则代码有效。但我无法理解致命错误的原因:为什么这适用于 php 5.3.14(或至少,使用我的配置)而不是 5.3.10(或至少,使用服务器的配置)?
我想问题是因为在命名空间Shop\Repository
中已经Day
加载了一个。但这从未导致我的设置出错!这是怎么回事?