在同一个PHP类中调用方法内部的方法

在同一个PHP类中调用方法内部的方法,php,function,methods,Php,Function,Methods,我认为这在PHP中是可能的,但我在让它工作时遇到了一些困难。我试图通过只创建一个应该显示在php类方法内部的html实例来最小化被复制的代码量。这是我只想创建一次的部分 public function display($dbCon){ $content = $obj->content; $contentSEO = $obj->contentSEO; $contentLink = $obj->contentLink; if(!empty($

我认为这在PHP中是可能的,但我在让它工作时遇到了一些困难。我试图通过只创建一个应该显示在php类方法内部的html实例来最小化被复制的代码量。这是我只想创建一次的部分

public function display($dbCon){
    $content = $obj->content;
    $contentSEO = $obj->contentSEO;
    $contentLink = $obj->contentLink;
        if(!empty($content) && !empty($contentSEO) && !empty($contentLink)){
            $content = str_replace("$contentSEO","<a href=\"$contentLink\"><small>$contentSEO</small></a>",$content);
            printf("%s", $content);
        } elseif(!empty($content) && empty($contentSEO) && !empty($contentLink)){
            $content = str_replace("$content","<a href=\"$contentLink\">$content</a>",$content);
            printf("%s", $content);
        } elseif(!empty($content) && !empty($contentSEO) && empty($contentLink)){
            $content = str_replace("$contentSEO","<small>$contentSEO</small>",$content);
            printf("%s", $content);
        } elseif(!empty($content) && empty($contentSEO) && empty($contentLink)){
            printf("%s", $content);
        } else {
            echo "Error";
        }
    }
现在,简单的方法是简单地将它们添加到同一个函数中,这确实有效。就像下面的例子

public function content1($dbCon){
        if($res = $this->dbConnection->query("SELECT * FROM content WHERE status = '1' and id = '1'")) {
            while($obj = $res->fetch_object()) {
                $content = $obj->content;
                $contentSEO = $obj->contentSEO;
                $contentLink = $obj->contentLink;
                if(!empty($content) && !empty($contentSEO) && !empty($contentLink)){
                    $content = str_replace("$contentSEO","<a href=\"$contentLink\"><small>$contentSEO</small></a>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && empty($contentSEO) && !empty($contentLink)){
                    $content = str_replace("$content","<a href=\"$contentLink\">$content</a>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && !empty($contentSEO) && empty($contentLink)){
                    $content = str_replace("$contentSEO","<small>$contentSEO</small>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && empty($contentSEO) && empty($contentLink)){
                    printf("%s", $content);
                } else {
                    echo "Error";
                }
            }
        }
    }

但相反,我不断收到我在代码中植入的错误消息,以防它不起作用。在此方面的任何帮助都将不胜感激

我想这是因为你需要调用
$this->display($obj)而不是
$this->display($dbCon)

不,我试过了,我还试过其他几种变体,你给了我一些想法,为什么它会被破坏,但这些都没有效果。
public function content1($dbCon){
        if($res = $this->dbConnection->query("SELECT * FROM content WHERE status = '1' and id = '1'")) {
            while($obj = $res->fetch_object()) {
                $content = $obj->content;
                $contentSEO = $obj->contentSEO;
                $contentLink = $obj->contentLink;
                if(!empty($content) && !empty($contentSEO) && !empty($contentLink)){
                    $content = str_replace("$contentSEO","<a href=\"$contentLink\"><small>$contentSEO</small></a>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && empty($contentSEO) && !empty($contentLink)){
                    $content = str_replace("$content","<a href=\"$contentLink\">$content</a>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && !empty($contentSEO) && empty($contentLink)){
                    $content = str_replace("$contentSEO","<small>$contentSEO</small>",$content);
                    printf("%s", $content);
                } elseif(!empty($content) && empty($contentSEO) && empty($contentLink)){
                    printf("%s", $content);
                } else {
                    echo "Error";
                }
            }
        }
    }
$this->display($dbCon);