0
我認爲這是可能的PHP,但我有一些麻煩讓它工作。我試圖通過創建一個應該顯示在php類方法內部的html實例來儘量減少被複制的代碼量。這是我只想創建一次的部分。調用方法內部的方法,而這兩個方法都在相同的PHP類
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";
}
}
現在這是一個類的內部,我希望以下方法在執行sql查詢後調用上面的這一個。我在這裏的目標是,如果我需要用相同的HTML調用一個類似的函數,我可以簡單地調用這個已經創建的函數,而不是重新編寫它。第二部分看起來像這樣。
public function content1($dbCon){
if($res = $this->dbConnection->query("SELECT * FROM content WHERE status = '1' and id = '1'")) {
while($obj = $res->fetch_object()) {
$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";
}
}
}
}
但是,這樣做會需要我總是複製和粘貼相同的代碼。何時需要。我寧願用查詢創建函數,並調用if語句函數來顯示HTML。我以爲我可以簡單地把它像這樣的函數內,像這樣while語句之後:
$this->display($dbCon);
而是我不斷收到我栽在代碼的情況下,它不工作相同的錯誤消息。任何幫助,這將不勝感激。
不,我試過了,我也嘗試了其他一些變化,你給了我一些想法,爲什麼它可以被打破,但這些都沒有成效。 –
你能給出錯誤嗎? – vchabot