DAVID Malan: Hebu kuboresha kozi Mzee kidogo zaidi kwa generalizing kazi hizo, renderHeader na renderFooter, katika, kabisa tu, atatoa kwa sababu baada ya yote, wao walikuwa karibu kufanana isipokuwa kwa majina yao. Jinsi ya kufanya hivyo? Vizuri atop faili hili tu, chini ambapo tunahitaji helpers.php, hebu simu kazi mpya, atatoa, ambao kwanza hoja, hebu kusema kuwa jina lake, ya template, file hiyo maana kwa kuwa plugged huko. Wakati huo huo, hoja ya pili atakuwa kubaki safu associative, katika hii Uchunguzi safu zenye muhimu kwa ajili ya jina lake thamani ni hapa CS50. Hebu sasa tuangalie helpers.php. Katika helpers.php, sisi sasa, ya Bila shaka, na moja tu kazi inavyoelezwa, atatoa. kutoa inachukua sasa hoja mbili, ambayo Tutamwita template na data, mwisho ambaye default thamani ni bado safu tupu. Lakini katika hili toleo la kutoa notisi kwamba Mimi sasa kutangaza variable ndani aitwaye njia na hawawajui thamani ya template, ambayo, kwa mfano, huenda kuwa quote, unquote, "header" na append kwa kuwa kamba. php. Kwa maneno mengine, hebu kudhani kwa sasa kwamba kama template yetu inaitwa header, basi template utatekelezwa katika faili iitwayo, rahisi kabisa, header.php. Wakati huo huo, hebu kufanya haraka sanity kuangalia. Kama njia hiyo ipo, ambayo tunaweza kuangalia kwa njia ya faili inayoitwa file_exists, basi hebu kutafuta associative safu kuitwa data ili sisi na moja au zaidi vigezo ndani katika upeo, na kisha hebu zinahitaji njia hiyo. Wakati huo huo, helpers.php inaonekana kabisa tu kama hii, hasa kama kabla ya. Lakini kama sisi sasa kuangalia nyuma katika index.php, taarifa kwamba chini ya kwamba file, tunaweza vile vile kuwaita atatoa, kupita katika kama yake pekee hoja footer. Katika kesi hiyo, hatuna haja ya kupita katika safu associative kwa sababu footer template, kukumbuka, ni tu hii. Lakini sasa tuna arguably hata safi kubuni kwa sababu tumekuwa kuondolewa baadhi ya vinginevyo wetu redundant kanuni na ziko kwenye kazi moja tu, atatoa.