DAVID Malan: Teeme parandada kursuse avalehele veidi edasi üldistades neid funktsioone, renderHeader ja renderFooter sisseveo, Lihtsalt muuta, sest lõppude lõpuks, nad olid peaaegu identsed, välja arvatud nende nimed. Kuidas seda teha? Noh atop seda faili lihtsalt alla, kui nõuame helpers.php, ütleme uus funktsioon, osutavad, kelle esimene argument, oletame, peab olema nimi malli, fail, mis on mõeldud olema ühendatud seal. Vahepeal teine ​​argument peab jääb assotsiatiivne massiiv, selles Juhul, kui massiiv sisaldab võtit pealkiri, mille väärtus on siin CS50. Olgem nüüd pilk helpers.php. In helpers.php, nüüd, of muidugi on ainult üks funktsioon määratletud muuda. muuda võtab nüüd kaks argumenti, mis me helistame malli ja andmed, Viimasel kelle vaikeväärtus on veel tühi massiiv. Aga selles versioonis muuta, teade et ma kuulutan kohaliku muutuja nimetatakse tee ja määrata selle väärtus template, mis on näiteks võiks olema tsitaat, lõppeb, "pealkiri" ja lisab, et string. php. Teisisõnu Oletame nüüd et kui meie malli nimi on päis, siis malli rakendatakse faili nimega, lihtsalt, header.php. Vahepeal teeme kiire mõistuse kontrolli all. Kui see tee on olemas, mida me saame vaadake teel fail nimega file_exists, siis olgem ekstrakti assotsiatiivne massiiv nimega andmeid nii, et meil üks või mitu kohalikku muutujad ulatusega ning seejärel lähme nõuda, et tee. Vahepeal helpers.php välja üsna lihtsalt meeldib see, just nagu enne. Aga kui me nüüd vaatame tagasi index.php, teate, et põhjas, et fail, saame sarnaselt helistada muuta, läbides selle ainus argument jalus. Sel juhul me ei vaja läbida assotsiatiivne massiiv sest footer malli mäletate, on just see. Aga nüüd on meil väidetavalt isegi puhasti projekteerimise sest me oleme kõrvaldada mõned meie muidu koondatud kood ja koondada vaid üks funktsioon, muuta.