SPEAKER: Să îmbunătățească cursurile pagina de a ne permite să furniza titluri personalizate pentru fiecare dintre cei pagini, astfel încât fiecare dintre ele este Nu, pur și simplu, CS50. Pentru a face acest lucru, să pună în aplicare o serie de funcții, unul numit Render Antet și unul numit Render subsol, care în loc să solicite Alone va avea grijă de prestarea de nostru anteturile și subsolurile de pagini. Să aruncăm o privire. In interiorul index.php acum, observați că Am necesită un nou fișier denumit Helpers.php. Este acolo că două funcții mele vor fi definite. De mai jos că, observa că eu sunt acum de asteptare ca functia Render antet. Și eu trec într-un argument. Tipul de argument care pare a fi o matrice, care în PHP este notată cu paranteze pătrate. În special, această matrice este un tablou asociativ în măsura în care asociază o cheie, cum ar fi titlu, cu un valoare, cum ar fi CS50, mai degrabă decât să se bazeze pe indici numerice singur. Mai jos că acum avem Lista mea neordonate. Dar de mai jos că, avem un apel la Render Subsol, altă funcție care este probabil definit în Helpers.php. Să aruncăm o privire acolo acum. În Helpers.php, observați că am, într-adevăr, că funcția Render subsol al căror scop în viață este aparent de să ia în ca argument o matrice numit de date. Acum, în cazul în care utilizatorul nu oferă o matrice explicit, faptul că nu există un semn egal, urmat de pătrat gol paranteze înseamnă că valoarea implicită de date va fi pur și simplu un array gol. In interiorul Render subsol, observați că sunt apel o functie numita Extract. Extract are un tablou asociativ, cum ar fi Date în acest caz, precum și pentru orice cheie în ea, se transformă cheia într-o variabile locale cu acelasi nume. Deci, dacă că tablou asociativ a avut o cheie numit Foo, extract ar asigura că acum avem o variabilă locală numită semn dolar Foo, a căror valoare este fel cum a fost în acea tablou asociativ. În cele din urmă, eu numesc solicite footer.php, care ca o parte, pare destul de simplu ca asta. Acum, înapoi în Helpers.php, observați că am de asemenea, au Render Antet, a cărui argument este același, o matrice numit de date a cărei implicit Valoarea este un array gol. Atunci se numește din nou Extract, ca și mai înainte. Și apoi avem nevoie de header.php, al căror conținut sunt acum acest lucru. Interior din header.php, observați că noi nu mai au un titlu greu codificate. Și acum avem o etichetă H1, de asemenea. În special, valoarea titlului va fi, indiferent de valoarea variabila local numit Titlul este. După trecerea la o funcție PHP numit HTML caractere speciale, vom pentru a obține această valoare întoarcere, și apoi introduceți-l în HTML mă scoate printr-o modalitate de această funcție, numit Echo. Într-adevăr, aceasta este notație prescurtare pentru un apel de funcție care ar putea altfel arata ca aceasta. Dar este mult mai curat, pur și simplu, să scrie Suport deschis semn de întrebare egal semna, fără a menționa măcar PHP. Am acum de gând să facă același interiorul că tag-ul H1, astfel încât în ​​cele din urmă, în cazul în care utilizatorul trece la Render funcția mea Antet un tablou asociativ, în interiorul din care este o cheie numita titlu, care cheie tablou asociativ va deveni un variabilă locală numită semn dolar titlu. Vom trece apoi că dolar semn Titlu variabilă pentru această funcție, HTML Caractere speciale. Și doar în cazul în care nu există nici un potențial caractere periculoase în acolo, cum ar fi ampersand sau alte astfel de simboluri, HTML caractere speciale se va face vă că acestea sunt prestate în condiții de siguranță de pe pagina. Și prin utilizarea deschisă întrebare suport marca semnul egal, eu sunt literalmente înlocuind în la acea parte a pagina indiferent de valoarea de returnare de HTML Caractere este. Între timp, în Lectures.php, I avea o nouă valoare pentru titlu. Nu CS50, dar Lectures. În Week0.php, am o valoare de Săptămâna 0. Și în Week1.php, am o valoare de Săptămâna 1. Deci, la sfârșitul zilei, pagina mea arata destul de cum a făcut-o înainte. Dar am ajuns acum o mult, mult mai bine de design.