Php 类方法don';t存在(抛出致命错误)-但它存在
我不知道为什么,但是PHP触发了一个致命错误,因为类方法不存在。 但它显然存在 left.phtml:Php 类方法don';t存在(抛出致命错误)-但它存在,php,oop,methods,Php,Oop,Methods,我不知道为什么,但是PHP触发了一个致命错误,因为类方法不存在。 但它显然存在 left.phtml: <?php $block = Block::getBlock('core/sidebar_modules'); foreach($block->getSidebar('left') AS $key => $value) { $_block = explode('_',$value->getName()); if(i
<?php
$block = Block::getBlock('core/sidebar_modules');
foreach($block->getSidebar('left') AS $key => $value)
{
$_block = explode('_',$value->getName());
if(isset($_block[1]))
{
$_block[1] .= '_widget';
}
$loadBlock = Block::getBlock(implode('/',$_block)); // returns instance of Visio_Blog_Block_Recent_Widget
Debug::var_dump($loadBlock);
/*
returns:
object(Visio_Blog_Block_Recent_Widget)#33 (0) {
}
*/
echo $loadBlock->widgetContent();
/*
returns:
Fatal error: Call to a member function widgetContent() on a non-object in E:\docroot\vhosts\zend.local.host\htdocs\app\design\default\templates\left.phtml on line 13
*/
Debug::print_r(get_class_methods($loadBlock));
/*
returns:
Array
(
[0] => __construct
[1] => widgetContent
)
*/
}
?>
我不知道为什么会这样
这是否可能是我的视图类在实现嵌套视图模板时发生的错误
我从头开始构建框架。从错误来看,
$loadBlock
似乎不包含Visio\u Blog\u Block\u Recent\u Widget
或任何类的实例
Class Visio_Blog_Block_Recent_Widget
{
public function __construct()
{
return $this;
}
public function widgetContent()
{
return 'content';
}
}
所以问题在于分配 您可以发布getBlock()函数吗?
公共静态函数getBlock($block){$blockName=self::getBlockName($blockName);如果(class_exists($blockName)){self::$_实例[$blockName]=new$blockName();返回self::$_实例[$blockName];}返回null;}
因此$loadBlock
在echo$loadBlock->widgetContent()之前不是null
代码>不,直到var_dump打印出对象,它才为空。好的,找到问题了。该foreach循环中有2条数据库记录。第一个不存在,因此会触发该错误。