0

我有这个代码:

function getBlockName($blockId){
    $block = classContent::findById(conn(), $blockId);
    echo $block->getBname();
}

现在如果函数输出的东西工作正常,如果它没有输出任何东西我有

Fatal error: Call to a member function getBname() on a non-object in...

我对php很陌生,所以我找不到如何处理错误的解决方案。

任何帮助将不胜感激!:)

毛罗

4

4 回答 4

1

这意味着$block不是一个对象,可能是NULLfalse在某些情况下(没有找到)。

于 2011-04-15T09:02:35.183 回答
1

如果什么也没找到,它很可能不会返回对象。

function getBlockName($blockId){
    $block = classContent::findById(conn(), $blockId);
    if ($block !== false && is_object($block)) {
        echo $block->getBname();
    }
}

编辑:来自评论的推荐。

于 2011-04-15T09:02:54.913 回答
0

如果您的 findById 没有返回任何内容,则 $block 不是对象。而且您不能getBnam()从不是对象的东西中调用成员()。因此错误。

您可能想要添加一些代码来捕获不返回任何内容的事件。

喜欢:

function getBlockName($blockId){
    $block = classContent::findById(conn(), $blockId);
    if(!$block){
       echo 'error!;
    }else{
        echo $block->getBname();
    }
}
于 2011-04-15T09:03:16.370 回答
0

尝试测试$block. 在大多数情况下,你会这样做:

<?php
function getBlockName($blockId){
    $block = classContent::findById(conn(), $blockId);
    if($block)echo $block->getBname();
}
?>

但我有点不确定 findById 返回的内容。所以这里有一些肯定会起作用的东西:

<?php
function getBlockName($blockId){
    $block = classContent::findById(conn(), $blockId);
    if(method_exists($block,'getBname'))echo $block->getBname();
}
?>
于 2011-04-15T09:03:44.803 回答