我已經創建了以下函數來在PHP中打印HTML標記。構造重複函數
function div($attr = [], $child = []) {
$div = "<div";
if (is_array($attr)) {
foreach ($attr as $key => $value) {
$div .= " " . $key . '="' . $value . '"';
}
}
$div .= ">";
if (is_array($child)) {
foreach ($child as $value) {
$div .= $value;
}
}
$div .= "</div>";
return $div;
}
echo div(["class" => "container"], [
div(["class" => "title"], ["Lorem Ipsum"]])
]);
現在,我使用此功能與多個標籤; div,table,tr,td等。
對於每個標籤,我都會一遍又一遍地聲明函數,而對body進行很少的修改。這似乎是多餘的。我想創建一個返回實際功能的主函數。例如,
$div = construct("div");
$tr = construct("div");
當然,PHP不同於JS。在JS中,這將工作:
function construct(tagName) {
var elm = tagName;
return function(value) {
console.log(elm + ": " + value);
}
}
var div = construct("div");
var tr = construct("tr");
div("test"); // div: test
tr("test"); // tr: test
我應該如何繼續?
爲什麼不創建通用功能這會將標籤名稱作爲參數之一? – ShiraNai7