1

发生了一些奇怪的事情。

以下是来自的片段view_reminders.php

<?php 
  namespace reminder;
  require_once('./reusable/reminders.php');
?>

some HTML...

<?php  
    $reminders = new Reminders(); # STATEMENT THAT THROWS AN ERROR : LINE 23
    $reminder_details = $reminders->get_reminders();
    foreach($reminder_details as $reminder) {
        echo $reminder;
    }
?>

在上面的脚本中,语句$reminders = new Reminders()抛出了一个错误:Fatal error: Class 'reminder\Reminders' not found in E:\Installed_Apps\xampp\htdocs\remind\view_reminders.php on line 23

我不明白这个错误。以下是来自的片段reminders.php

<?php
namespace reminder;
namespace connection;
require_once('./reusable/connection.php');

Class Reminders{
    private $user_info;
    private $userID;
    private $reminder_info;
    private $reminder_count;

            .
            .
            .
    }

现在为什么在Reminders找到脚本时找不到类reminders.php

注意:目录结构:

     +--->resuable
          +---->connection.php
           ---->reminders.php
     ---->view_reminders.php

view_reminders.php就在外面connection.phpreminders.phpreusable目录里面。

4

4 回答 4

2

您将命名空间设置为connection. 你可以使用多个命名空间,但你必须这样写:

<?php
namespace connection;
require_once('./reusable/connection.php');

namespace reminder;
Class Reminders{
    private $user_info;
    private $userID;
    private $reminder_info;
    private $reminder_count;

            .
            .
            .
    }

另请查看手册的链接,了解使用方括号使用多个命名空间的推荐方法:

<?php
namespace connection {
require_once('./reusable/connection.php');
}

namespace reminder {
Class Reminders{
    private $user_info;
    private $userID;
    private $reminder_info;
    private $reminder_count;

            .
            .
            .
    }
}
于 2013-03-20T14:47:08.280 回答
0

提醒类上的双重命名空间?

于 2013-03-20T14:44:57.623 回答
0

你真的可以那样使用两个命名空间吗??...据我所知,在这段代码中:

namespace reminder;
namespace connection;

下一个代码将用于连接命名空间,并且提醒为空

尝试从那里删除连接命名空间。

于 2013-03-20T14:47:23.067 回答
0

根据PHP:在同一个文件中定义多个命名空间

多个命名空间也可以在同一个文件中声明。

在“reminders.php”中,您已经按照该页面上描述的语法声明了多个命名空间。我建议后一个 ( connection) 是Reminders创建类的命名空间。

于 2013-03-20T14:48:44.703 回答