php - 无法在另一个 PHP 中实例化一个类
问题描述
我怎样才能OM
在里面建立一个类MySQL_DataMapper
?
这是 MySQL_DataMapper.php:
<?php
namespace asc {
include('../../models/OM.php');
class MySQL_DataMapper
{
[omitted code for simplicity]
public function fetchAllOMs()
{
$query = "REALLY LONG QUERY";
$result = $this->pdo->query($query);
$OMs = array();
while ($row = $result->fetch()){
$OM = new OM($row['id_organizacao_militar'], $row['nome'], $row['sigla'], $row['forca_armada']);
array_push($OMs, );
}
var_dump($OMs);
}
}
}
这是我得到的错误:
Warning: include(../../models/OM.php): failed to open stream: No such file or directory in /home/alekrabbe/PhpstormProjects/stm_asc/controller/database/MySQL_DataMapper.php on line 10
Warning: include(): Failed opening '../../models/OM.php' for inclusion (include_path='.:/usr/share/php') in /home/alekrabbe/PhpstormProjects/stm_asc/controller/database/MySQL_DataMapper.php on line 10
Fatal error: Uncaught Error: Class 'asc\OM' not found in /home/alekrabbe/PhpstormProjects/stm_asc/controller/database/MySQL_DataMapper.php:37 Stack trace: #0 /home/alekrabbe/PhpstormProjects/stm_asc/views/cadastro-militar.php(13): asc\MySQL_DataMapper->fetchAllOMs() #1 {main} thrown in /home/alekrabbe/PhpstormProjects/stm_asc/controller/database/MySQL_DataMapper.php on line 37
我不明白为什么它会失败,因为我只是在另一个 php 文件上这样做并且它在那里工作。谢谢你。
编辑 1
忘了提,但是类 OM.php 也在 asc 命名空间中。
这里是:
<?php
namespace asc{
class OM
{
private $id;
private $nome;
private $sigla;
private $forca_armada;
public function __construct($id, $nome, $sigla, $forca_armada)
{
$this->id = $id;
$this->nome = $nome;
$this->sigla = $sigla;
$this->forca_armada = $forca_armada;
}
[Gets and Sets]
}
}
解决方案
你在一个命名空间内:
namespace asc {
所以引用OM
成为asc\OM
. 通过锚定到根命名空间来解决这个问题:
$OM = new \OM(...);
推荐阅读
- flutter - 如何将新属性添加到颤振/飞镖中的列表项?
- c++ - 在 C++ 中,您可以使用 ToString() 函数将堆栈的内容作为字符串返回吗?
- python - 寻找终极父母
- apache-spark - 写入 Delta 表时检测到架构不匹配
- r - 如何生成一个 svytableone,它显示按 z 分组的 x 的数量?
- python - python将值插入MySQL-.DatabaseError:1366(HY000):字符串值不正确:'\ x92
- javascript - React Router 不会在道具上重新渲染相同的组件
- python - 脏话过滤器无法加载 Spacy 模型“en”
- python - Kivy:尝试加载远程 mp4 时,Gstreamer 插件不起作用
- cookies - cakePHP中间件中如何设置默认cookie参数