Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t在命名空间类中创建对象_Php_Namespaces_Fuelphp - Fatal编程技术网

Php Can';t在命名空间类中创建对象

Php Can';t在命名空间类中创建对象,php,namespaces,fuelphp,Php,Namespaces,Fuelphp,我有一个这样的结构 namespace Html; class MyHtml extends Fuel\Core\Html { private $table = null; public function __construct($table) { $this->table = $table; } public function textarea() { } ...

我有一个这样的结构

namespace Html;  

class MyHtml extends Fuel\Core\Html {
        private $table = null;

        public function __construct($table) {
            $this->table = $table;
        }

        public function textarea() { 

        }
    ...
在我的模板上

<article class="modal hide fade" id="add-journal">
                <section class="modal-header">Add Journal</section>
                <section class="modal-body">
                    <?php 
                        $form = new Html\MyHtml('form-item');
                        ...other code...
                    ?>
                </section>
                <section class="modal-footer"></section>
            </article>
这可能不是一个fuelphp问题,但更像是一个PHP问题。这是否意味着如果我的类位于命名空间中,我就不能基于它生成对象?我必须为它提供一个静态函数吗


谢谢。

您正在使用相对命名空间路径创建对象

使用命名空间的绝对路径:

 $form = new \Html\MyHtml('form-item');
当然,您的自动加载器需要自动包含您的文件。如果没有自动加载器,请确保包含该文件:

include_once 'path_to_your_class/your_classfile.php';
$form = new \Html\MyHtml('form-item');

您应该使用
$form=new\Html\MyHtml('form-item')

\
表示从根开始。如果不是从根开始,则从模板所属的命名空间中搜索
Html\MyHtml


此外,确保在全局命名空间中解析FuelPHP视图后,使用自动加载器或
require\u加载类,因此在这种特定情况下,Html\MyHTML应该可以工作

最大的问题是您在哪里创建了这个类,并且由于它使用非标准的类命名,您是否将它添加到引导中?FuelPHP的autoloader区分大小写,因此它将查找Myhtml类


第二个问题是我想知道你到底想做什么?FuelPHP的HTML类是一个静态助手类,实例化它是毫无意义的,因为它只包含静态方法…

这将起作用。但是对于使用框架,我需要继续使用autoloader部分。但是,我似乎在配置文件中找不到它。
include_once 'path_to_your_class/your_classfile.php';
$form = new \Html\MyHtml('form-item');