Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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 Zend ViewHelper子函数_Php_Function_Zend View_Zend Framework_View Helpers - Fatal编程技术网

Php Zend ViewHelper子函数

Php Zend ViewHelper子函数,php,function,zend-view,zend-framework,view-helpers,Php,Function,Zend View,Zend Framework,View Helpers,我想向ViewHelper添加多个函数。通常有一个函数命名为类和文件名 如何将多个函数添加到一个ViewHelper中 例如,像这样: class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract { public function Horizontal($parameter) { return "..."; } } echo$this->MyMenuHelper()->水平

我想向ViewHelper添加多个函数。通常有一个函数命名为类和文件名

如何将多个函数添加到一个ViewHelper中

例如,像这样:

class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
{
    public function Horizontal($parameter)
    {
         return "...";
    }
}

echo$this->MyMenuHelper()->水平($parameter)

尝试以小写字母开头函数名

        class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
        {
                public function horizontal($parameter)
                {
                       return "...";
                }
        }
他认为:

        echo $this->myMenuHelper()->horizontal($parameter);

尝试以小写字母开头函数名

        class Zend_View_Helper_MyMenuHelper extends Zend_View_Helper_Abstract
        {
                public function horizontal($parameter)
                {
                       return "...";
                }
        }
他认为:

        echo $this->myMenuHelper()->horizontal($parameter);

Alex走的是正确的道路,但在他的回答中遗漏了一些东西:实际的
myMenuHelper()
方法必须返回视图帮助器本身,才能正常工作:

class Zend\u View\u Helper\u MyMenuHelper扩展了Zend\u View\u Helper\u摘要
{
公共函数myMenuHelper()
{
退还$this;
}
公共函数水平(){…}
//更多方法。。。
}
然后,如前所述:

echo$this->myMenuHelper()->horizontal();

Alex走的是正确的道路,但在他的回答中遗漏了一点:实际的
myMenuHelper()
方法必须返回视图帮助器本身,才能正常工作:

class Zend\u View\u Helper\u MyMenuHelper扩展了Zend\u View\u Helper\u摘要
{
公共函数myMenuHelper()
{
退还$this;
}
公共函数水平(){…}
//更多方法。。。
}
然后,如前所述:

echo$this->myMenuHelper()->horizontal();

有时您不希望传递视图帮助器的主方法,尽管它对于某些类型的逻辑来说并不坏。在这种情况下,请使用
getHelper()

以下示例完全绕过
myMenuHelper()

// in controller
$this->view->getHelper('MyMenuHelper')->horizontal();

// in view
$this->getHelper('MyMenuHelper')->horizontal();`
例如,在某些情况下,我使用控制器中的一些内部数据填充视图帮助器,直接在视图中调用其主方法,该方法对该数据起作用

// in controller
$this->view->getHelper('MyMenuHelper')->storeData($someArray);

// in view
$this->myMenuHelper(); // iterates over $someArray

有时,您不希望传递视图帮助器的主方法,尽管这对于某些类型的逻辑来说并不坏。在这种情况下,请使用
getHelper()

以下示例完全绕过
myMenuHelper()

// in controller
$this->view->getHelper('MyMenuHelper')->horizontal();

// in view
$this->getHelper('MyMenuHelper')->horizontal();`
例如,在某些情况下,我使用控制器中的一些内部数据填充视图帮助器,直接在视图中调用其主方法,该方法对该数据起作用

// in controller
$this->view->getHelper('MyMenuHelper')->storeData($someArray);

// in view
$this->myMenuHelper(); // iterates over $someArray

错误
调用非对象[视图中脚本]上的成员函数horizontal()
错误
调用非对象[视图中脚本]上的成员函数horizontal()