1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [8 § - Lisää Mukava] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - Harvardin yliopisto] 3 00:00:04,910 --> 00:00:07,070 [Tämä on CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> Nämä viikon jakso muistiinpanoja olemaan melko lyhyt, 5 00:00:14,160 --> 00:00:19,070 joten olen juuri menossa pitää puhua, te aiotte pitää esittää kysymyksiä, 6 00:00:19,070 --> 00:00:22,720 ja me yritämme täyttää niin paljon aikaa kuin mahdollista. 7 00:00:22,720 --> 00:00:31,950 Monet ihmiset ajattelevat, että tämä PSET ei välttämättä vaikeaa, mutta se on hyvin pitkä. 8 00:00:31,950 --> 00:00:37,070 PSET spec itsessään kestää tunnin lukea. 9 00:00:40,530 --> 00:00:45,730 Annamme sinulle paljon SQL mitä mahdollisesti on käytettävä. 10 00:00:45,730 --> 00:00:50,520 Me opastaa paljon se, joten sen ei pitäisi olla liian paha. 11 00:00:50,520 --> 00:00:54,560 Onko kukaan alkanut tai päättynyt? 12 00:00:55,380 --> 00:00:59,710 Se on viimeinen PSET. Voi luoja. 13 00:00:59,710 --> 00:01:05,400 Yleensä siellä on JavaScript peräkkäin tämän, mutta kalenteri muuttaa asioita 14 00:01:05,400 --> 00:01:09,560 tekee kaiken 1 viikko lyhyempi, ja meillä ei enää ole JavaScript PSET. 15 00:01:09,560 --> 00:01:12,310 En tiedä miten se vaikuttaa, onko JavaScript on menossa näkyä tentti 16 00:01:12,310 --> 00:01:15,510 tai Quiz 1. 17 00:01:15,510 --> 00:01:22,260 Uskoisin, että se tulee olemaan jotain sinun täytyy tietää korkean tason asioita JavaScript, 18 00:01:22,260 --> 00:01:26,460 mutta epäilen olimme vain antaa sinulle suoran JavaScript-koodia 19 00:01:26,460 --> 00:01:28,720 koska sinulla ei ole ollut PSET siinä. 20 00:01:28,720 --> 00:01:33,000 Mutta se tulee tavaraa tietokilpailu tarkistaa ensi viikolla. 21 00:01:33,000 --> 00:01:36,320 >> Osa kysymyksistä. 22 00:01:36,320 --> 00:01:43,870 Paljon tätä kamaa on hieman huonosti muotoiltu, mutta kerromme miksi. 23 00:01:43,870 --> 00:01:50,220 Toisin C, PHP on "dynaamisesti kirjoittanut" kieltä. Mitä tämä tarkoittaa, kysyt? 24 00:01:50,220 --> 00:01:53,830 No, sano hyvästit kaikille niille char, float, int, ja muut avainsanat haluat käyttää 25 00:01:53,830 --> 00:01:56,190 kun julistaa muuttujia ja funktioita C. 26 00:01:56,190 --> 00:02:00,420 PHP, muuttujan tyyppi määräytyy arvolla, että se on tällä hetkellä tilalla. 27 00:02:00,420 --> 00:02:04,990 Joten ennen kuin kirjoitat tämän koodin tiedosto nimeltä dynamic.php, 28 00:02:04,990 --> 00:02:12,670 PHP dynaamisesti kirjoitetaan. Se on totta. 29 00:02:12,670 --> 00:02:17,590 Olen eri mieltä siitä, että se tarkoittaa, että sanomme hyvästit char, float, int, 30 00:02:17,590 --> 00:02:20,620 ja muita avainsanoja. 31 00:02:20,620 --> 00:02:25,510 Tarkka ero dynaamisesti kirjoittanut ja toissijaisesti, 32 00:02:25,510 --> 00:02:32,010 joka on staattisesti kirjoitetaan, että dynaamisesti kirjoitetaan, kaikki tyypin tarkkailun ja juttuja 33 00:02:32,010 --> 00:02:37,350 tapahtuu ajon aikana, kun taas staattisesti kirjoitetaan se tapahtuu käännöksen yhteydessä. 34 00:02:37,350 --> 00:02:43,030 Sana staattinen yleisesti näyttää tarkoittavan kääntää aikaa asioita. 35 00:02:43,030 --> 00:02:48,170 Luulen muitakin käyttötarkoituksia, mutta C kun julistaa staattinen muuttuja, 36 00:02:48,170 --> 00:02:52,650 sen varastointi jaetaan käännöksen yhteydessä. 37 00:02:52,650 --> 00:02:59,260 Täällä dynaamisesti kirjoitettu vain sitä, että - 38 00:02:59,260 --> 00:03:04,350 C Jos yrität lisätä merkkijono ja kokonaisluku, kun käännät sen, 39 00:03:04,350 --> 00:03:11,000 se aio valittaa, koska se tulee sanoa, että et voi lisätä int ja osoitin. 40 00:03:11,000 --> 00:03:14,710 Se vain ei ole kelvollinen operaatio. 41 00:03:14,710 --> 00:03:21,170 Se on toinen asia, että me saamme toisessa. 42 00:03:21,170 --> 00:03:24,860 Mutta tällaista tarkkailun, että se moittii käännöksen yhteydessä, 43 00:03:24,860 --> 00:03:29,220 on staattinen tyyppi tarkkailun. 44 00:03:29,220 --> 00:03:35,220 On kieliä, joissa sinun ei tarvitse sanoa char, float, int, ja kaikki nuo asiat, 45 00:03:35,220 --> 00:03:40,940 mutta kielen voi kertoa yhteydessä asia minkälainen sen pitäisi olla, 46 00:03:40,940 --> 00:03:43,980 mutta se on silti staattisesti kirjoitetaan. 47 00:03:43,980 --> 00:03:49,000 Joten jos otat 51, OCaml, sinun ei koskaan tarvitse käyttää näitä tyyppejä, 48 00:03:49,000 --> 00:03:58,700 mutta silti käännöksen yhteydessä sano et voi tehdä tätä, koska olet sekoittamalla int ja string. 49 00:03:58,700 --> 00:04:05,650 Dynaamisesti kirjoitettu vain sitä, että joskus ajon aikana aiot saada valituksen. 50 00:04:05,650 --> 00:04:13,430 Jos on käytetty myös Java ennen, yleensä lähes minkä tahansa C-tyypin kieli 51 00:04:13,430 --> 00:04:20,070 aiotaan staattisesti kirjoitetaan, niin C, C + +, Java, kaikki nämä ovat yleensä staattisesti kirjoitetaan. 52 00:04:20,070 --> 00:04:22,910 Java kun käännät jotain ja sanot 53 00:04:22,910 --> 00:04:26,670 string s vastaa uutta jotain, joka ei ole merkkijono, 54 00:04:26,670 --> 00:04:28,950 että menee valittaa, koska nämä tyypit eivät vain täsmää. 55 00:04:28,950 --> 00:04:31,180 Että menee valittaa käännöksen yhteydessä. 56 00:04:31,180 --> 00:04:36,750 Mutta se on myös joitakin dynaamisia aikaa asioita, kuten jos yrität heittää jotain 57 00:04:36,750 --> 00:04:40,500 sen tyypin, joka on tarkempi kuin nykyinen tyyppi, 58 00:04:40,500 --> 00:04:45,610 ei ole mitään sen voi tehdä käännöksen yhteydessä tarkistaa, onko valettu aikoo menestyä. 59 00:04:45,610 --> 00:04:51,130 Java on myös joitakin dynaaminen tyyppi tarkistaa, että heti kun se saa siihen koodirivin 60 00:04:51,130 --> 00:04:54,130 kun se tosiasiassa ajetaan, se tulee tehdä valettu, 61 00:04:54,130 --> 00:04:56,260 Tarkista, että valettu oli pätevä ensinnäkin, 62 00:04:56,260 --> 00:04:59,890 ja jos se ei ollut, niin se tulee valittaa, että sinulla on virheellinen tyyppiä. 63 00:04:59,890 --> 00:05:03,200 Dynaaminen tyyppi tarkkailun. 64 00:05:03,200 --> 00:05:07,010 Kirjoita tähän tiedostoon nimeltä dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 Minä pura se muotoilu. 67 00:05:18,750 --> 00:05:21,880 Meillä on muuttuja, asetamme sen kokonaisluku 7, 68 00:05:21,880 --> 00:05:27,930 Sitten me aiomme tulostaa ja% s - 69 00:05:27,930 --> 00:05:32,830 Voi, me tulostaa tyyppi sitä, joten getType on palaamassa tyypin muuttujan. 70 00:05:32,830 --> 00:05:35,720 Olemme vain tulostaa tyypin uudestaan ​​ja uudestaan. 71 00:05:35,720 --> 00:05:39,440 Me vain php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 Näemme, että se muuttuu kokonaisluvun merkkijono Boolean kun käymme läpi. 73 00:05:45,920 --> 00:05:54,590 C-ei ole Boolen tietotyyppi ei ole merkkijono tietotyyppi. 74 00:05:54,590 --> 00:06:00,500 On char * ja Boolen vain yleensä int tai char tai jotain. 75 00:06:00,500 --> 00:06:05,690 PHP Tämäntyyppisten olemassa, ja se on yksi suurista eduista PHP yli C - 76 00:06:05,690 --> 00:06:13,290 että merkkijono toiminta on äärettömän helpompaa PHP kuin C. Ne vain toimivat. 77 00:06:13,290 --> 00:06:18,290 >> Joten palaamme tänne. 78 00:06:18,290 --> 00:06:21,260 Ajoimme dynamic.php. 79 00:06:21,260 --> 00:06:26,710 Tämä kertoo PHP tulkki, kutsutaan php, suorittaa PHP koodia dynamic.php. 80 00:06:26,710 --> 00:06:30,250 Jos sinulla on tiedoston virheet, tulkki kertoo! 81 00:06:30,250 --> 00:06:39,110 Tulkin, tämä on toinen suuri ero PHP ja C. 82 00:06:39,110 --> 00:06:48,200 C sinun täytyy koota jotain ja sitten ajaa että käännetty tiedosto. 83 00:06:48,200 --> 00:06:50,490 PHP koskaan kääntää mitään. 84 00:06:50,490 --> 00:06:57,200 Joten PHP tulkki on pohjimmiltaan juuri lukemassa tätä rivi. 85 00:06:57,200 --> 00:07:02,900 Se osuu var = 7 niin se iskee printf sitten se iskee var sitten se iskee printf ja niin edelleen. 86 00:07:02,900 --> 00:07:10,910 Siellä on vähän koota se, ja se välimuistiin tuloksia 87 00:07:10,910 --> 00:07:15,510 joten jos käytät skripti voit tehdä joitakin, 88 00:07:15,510 --> 00:07:19,280 mutta pohjimmiltaan se rivi sellainen asia. 89 00:07:19,280 --> 00:07:25,280 Tämä tarkoittaa, että paljon optimoinnit että saamme C, 90 00:07:25,280 --> 00:07:31,920 kuten kokoamisessa, se on vain yleensä kääntäjä voi tehdä paljon temppuja sinulle. 91 00:07:31,920 --> 00:07:36,110 Se voi ottaa käyttämättömiä muuttujia, se voi tehdä kaikki nämä asiat asioita, 92 00:07:36,110 --> 00:07:38,660 se voi tehdä häntä rekursio. 93 00:07:38,660 --> 00:07:42,550 PHP et tule saamaan tätä etua 94 00:07:42,550 --> 00:07:45,690 koska se on juuri menossa aloittaa täytäntöönpanovaltion rivi rivi riviltä, 95 00:07:45,690 --> 00:07:49,950 ja se ei todellakaan tunnista näitä asioita yhtä helposti 96 00:07:49,950 --> 00:07:54,440 koska se ei ole 1 iso kokoelma kulkevat asia ja sitten teloitus; 97 00:07:54,440 --> 00:07:56,860 se on vain rivi. 98 00:08:00,730 --> 00:08:02,750 Joten se tulkki. 99 00:08:02,750 --> 00:08:06,840 >> Takaisin meidän dynaaminen kirjoittamalla: melko viileä, eh? 100 00:08:06,840 --> 00:08:08,640 Et todellakaan voinut tehdä C! 101 00:08:08,640 --> 00:08:11,860 Nyt, katso jos voit selvittää tyypin kutakin seuraavista arvoista. 102 00:08:11,860 --> 00:08:14,760 Katso tämä viite. 103 00:08:14,760 --> 00:08:19,420 Niin 3.50. Millaista luulet että tulee olemaan? 104 00:08:24,480 --> 00:08:26,370 Tässä ovat tyyppejä meillä. 105 00:08:26,370 --> 00:08:30,430 Olemme bools, kokonaislukuja, kelluva pistettä, jouset, taulukot, esineet, 106 00:08:30,430 --> 00:08:38,370 ja sitten resurssit, mikä on tavallaan epämääräinen. 107 00:08:38,370 --> 00:08:41,010 Mielestäni on todella esimerkki tästä. 108 00:08:41,010 --> 00:08:43,740 Sitten on NULL. NULL on erityinen tyyppi. 109 00:08:43,740 --> 00:08:47,140 Toisin C jossa NULL on vain osoittimen osoite 0, 110 00:08:47,140 --> 00:08:54,930 PHP, NULL on oma tyyppi, jossa ainoa pätevä juttu, että tyyppi on NULL. 111 00:08:57,560 --> 00:09:00,670 Tämä on paljon enemmän hyötyä Virheentarkistus. 112 00:09:00,670 --> 00:09:04,310 C jossa meillä oli tämä ongelma, jos jos palaat NULL, 113 00:09:04,310 --> 00:09:08,660 se tarkoittaa palaat NULL osoitin tai käyttämällä NULL merkiksi virhe 114 00:09:08,660 --> 00:09:12,380 tai kaikki sekaannuksen meillä oli jossain vaiheessa. 115 00:09:12,380 --> 00:09:18,440 Tässä, palaavat NULL tarkoittaa yleensä virhe. 116 00:09:20,860 --> 00:09:27,300 Paljon asioita myös palauttaa false virhe. 117 00:09:27,300 --> 00:09:33,140 Mutta kohta on NULL tyyppiä, vain asia NULL tyyppi on NULL. 118 00:09:33,140 --> 00:09:40,090 Sitten soittopyyntö on kuin voit määrittää joitakin nimettömiä toimintoja. 119 00:09:40,090 --> 00:09:46,420 Sinun ei tarvitse antaa funktion nimeä, mutta sinun ei tarvitse käsitellä sitä täällä. 120 00:09:46,420 --> 00:09:53,940 Tarkasteltaessa tyyppejä, että he eivät odota meidän tietävän, 121 00:09:53,940 --> 00:09:59,000 mitä mieltä olette tyyppinen 3,50 on? >> [Opiskelija] Float. 122 00:09:59,000 --> 00:10:00,370 Joo. 123 00:10:00,370 --> 00:10:06,290 Joten sitten täällä, mitä mieltä olet tyyppi on? >> [Opiskelija] Array. 124 00:10:06,290 --> 00:10:09,890 Joo. Ensimmäinen oli float, toinen on matriisi. 125 00:10:09,890 --> 00:10:14,500 Huomaa, että tämä ryhmä ei ole kuin C-array 126 00:10:14,500 --> 00:10:19,610 jos sinulla on indeksi 0 on jotain arvoa, indeksi 1 on jotain arvoa. 127 00:10:19,610 --> 00:10:26,320 Tässä indeksit ovat a, b ja c ja arvot ovat 1, 2, ja 3. 128 00:10:26,320 --> 00:10:33,980 PHP ei ole eroa assosiatiivinen array ja vain säännöllinen joukko 129 00:10:33,980 --> 00:10:36,740 kuin luulisi sitä on C. 130 00:10:36,740 --> 00:10:43,040 On vain tämä, ja alla huppu säännöllinen matriisi on vain assosiatiivisia array 131 00:10:43,040 --> 00:10:50,000 missä 0 karttoja joitakin arvo samalla tavalla karttoja jotain arvoa. 132 00:10:50,000 --> 00:11:00,410 Tästä syystä PHP voi olla aika huono todella nopeasti code / benchmarking asioita 133 00:11:00,410 --> 00:11:07,930 koska C kun käytät array tiedät että pääsy jäsen on vakio ajan. 134 00:11:07,930 --> 00:11:11,860 PHP pääsy jäsen, joka tietää kuinka paljon aikaa? 135 00:11:11,860 --> 00:11:18,970 Se on luultavasti jatkuvasti, jos se hash oikein. 136 00:11:18,970 --> 00:11:21,620 Kuka tietää, mitä se todella tekee alla huppu? 137 00:11:21,620 --> 00:11:25,600 Ette todellakaan tarvitse katsoa täytäntöönpanosta miten se aikoo käsitellä asiaa. 138 00:11:25,600 --> 00:11:28,550 Joten sitten fopen. 139 00:11:28,550 --> 00:11:36,420 Mielestäni tässä mennään vain PHP käsikirja fopen tarkastella palautuva. 140 00:11:36,420 --> 00:11:41,260 Näemme täällä voit etsiä melko paljon mitään funktiota PHP käsikirja 141 00:11:41,260 --> 00:11:47,540 ja tämä on tavallaan man sivun PHP. 142 00:11:47,540 --> 00:11:51,060 Palautuva tulee olemaan voimavara. 143 00:11:51,060 --> 00:11:56,050 Siksi minä katsoin sitä, koska emme oikeastaan ​​määritellä resurssi. 144 00:11:56,050 --> 00:12:04,110 Ajatus resurssi, C et sellaista saanut FILE * tai mitä tahansa; 145 00:12:04,110 --> 00:12:07,200 PHP resurssi on tiedosto *. 146 00:12:07,200 --> 00:12:10,360 Se mitä aiot olla lukemista, se mitä aiot olla kirjallisesti. 147 00:12:10,360 --> 00:12:20,710 Se on yleensä ulkoinen, joten se on resurssi voit vetää asioita ja heittää asioita. 148 00:12:20,710 --> 00:12:26,520 Ja lopuksi, mitä tyyppiä NULL? >> [Opiskelija] NULL. 149 00:12:26,520 --> 00:12:30,650 Joo. Joten ainoa asia, joka on NULL on NULL. 150 00:12:30,650 --> 00:12:33,480 NULL on NULL. 151 00:12:35,490 --> 00:12:41,170 >> Yksi ominaisuus PHP tyyppinumeroiden järjestelmä (parempaan tai huonompaan) on sen kyky manipuloida tyyppejä. 152 00:12:41,170 --> 00:12:44,390 Kun kirjoittaa rivin PHP, joka yhdistää arvot eri tyyppejä, 153 00:12:44,390 --> 00:12:46,670 PHP yrittää tehdä järkevästi. 154 00:12:46,670 --> 00:12:48,920 Kokeile kunkin seuraavan riviä PHP koodia. Mitä tulostaa? 155 00:12:48,920 --> 00:12:51,000 Onko se mitä odotit? Miksi tai miksi ei? 156 00:12:51,000 --> 00:12:58,600 Tämä tosiasia PHP tekee siitä mitä me kutsumme heikosti kirjoitettu. 157 00:12:58,600 --> 00:13:04,610 Heikosti kirjoitettu ja voimakkaasti kirjoitettu, 158 00:13:04,610 --> 00:13:06,840 on eri käyttötarkoituksia varten nämä käsitteet, 159 00:13:06,840 --> 00:13:12,020 mutta useimmat ihmiset käyttävät heikosti kirjoitettu ja voimakkaasti kirjoitettu tarkoittaa tällaista asiaa 160 00:13:12,020 --> 00:13:15,920 missä ("1" + 2); joka toimii. 161 00:13:15,920 --> 00:13:18,290 C, joka ei toimi. 162 00:13:18,290 --> 00:13:22,490 Voitte kuvitella tätä ei toimi. 163 00:13:22,490 --> 00:13:29,200 Monet ihmiset sekoittaa dynaaminen tyypitys ja heikko tyypitys ja staattinen tyypitys ja vahvan tyypityksen. 164 00:13:29,200 --> 00:13:34,050 Python on toinen esimerkki kielen, joka on dynaamisesti kirjoitetaan. 165 00:13:34,050 --> 00:13:41,770 Voit heittää noin tyyppejä muuttujia ja se tulee määrittää suorituksen aikana 166 00:13:41,770 --> 00:13:44,680 virhettä tarkistusten. 167 00:13:44,680 --> 00:13:50,740 Python se tulee toteuttaa tämän, ja se näkyy ("1" + 2); 168 00:13:50,740 --> 00:13:55,920 ja tämä ei onnistu, koska se sanoo, et voi lisätä merkkijono ja kokonaisluku. 169 00:13:55,920 --> 00:14:00,860 PHP, joka on aivan yhtä dynaamisesti kirjoitettu, tämä ei onnistu. 170 00:14:00,860 --> 00:14:04,220 Heikko tyypitys on tekemistä sen kanssa, että se tekee asioita eri 171 00:14:04,220 --> 00:14:07,800 jotka eivät oikeastaan ​​järkeä välttämättä. 172 00:14:07,800 --> 00:14:17,420 So ("1" + 2), voin kuvitella, että on merkkijono 12, voin kuvitella, että on merkkijono 3, 173 00:14:17,420 --> 00:14:20,710 Voin kuvitella, että on kokonaisluku 3. 174 00:14:20,710 --> 00:14:24,530 Se ei ole välttämättä määritelty hyvin, ja olemme luultavasti nähdä täällä 175 00:14:24,530 --> 00:14:29,140 että kun me painamme ("1" + 2), se on luultavasti menossa päätyä eri 176 00:14:29,140 --> 00:14:32,320 kuin tulostus (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 Ja tämä on yleensä, mielestäni huonompaan suuntaan. 178 00:14:39,700 --> 00:14:44,240 Täällä voimme kokeilla näitä. 179 00:14:44,240 --> 00:14:48,740 Toinen pikku temppu noin PHP on sinun ei tarvitse itse kirjoittaa tiedoston. 180 00:14:48,740 --> 00:14:52,790 Se on suorittaa tämän komennon tilassa. 181 00:14:52,790 --> 00:14:57,710 Joten php-r, voimme heittää komennon täällä: 182 00:14:57,710 --> 00:15:06,610 "Print ('1 '+ 2)," ja minä heitän uuden rivin. 183 00:15:19,550 --> 00:15:23,970 Tämä painettu 3. 184 00:15:31,100 --> 00:15:35,330 Se näyttää siltä kuin se tulostaa 3 ja se on kokonaisluku 3. 185 00:15:35,330 --> 00:15:38,420 Joten nyt yritetään toisinpäin: 186 00:15:38,420 --> 00:15:42,970 "Print (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 Saamme 3, ja on sitä myös olemaan kokonaisluku 3? Olen rehellisesti ei ole aavistustakaan. 188 00:15:50,490 --> 00:15:54,030 Näyttää siltä, ​​että on johdonmukainen. 189 00:15:54,030 --> 00:15:59,550 Ei ole koskaan mitään mahdollisuutta että on merkkijono 12 tai jotain sellaista 190 00:15:59,550 --> 00:16:08,080 koska PHP, toisin kuin JavaScript ja Java myös 191 00:16:08,080 --> 00:16:11,670 on erillinen operaattorin ketjuttamista. 192 00:16:11,670 --> 00:16:14,930 Ketjutus PHP on piste. 193 00:16:14,930 --> 00:16:22,950 Joten tulostus (1. '2 '), Tulee antaa meille 12. 194 00:16:25,790 --> 00:16:32,420 Tämä yleensä aiheuttaa sekaannusta, jos ihmiset yrittävät tehdä jotain str + = 195 00:16:32,420 --> 00:16:37,840 muu asia, että he haluavat lisätä edelleen loppuun niiden merkkijonon, ja se on menossa epäonnistua. 196 00:16:37,840 --> 00:16:40,770 Sinun täytyy tehdä str. = 197 00:16:42,000 --> 00:16:46,240 Joten älä unohda ketjutus PHP on piste. 198 00:16:46,240 --> 00:16:52,100 Kokeile myös: tulostaa ("CS" + 50); 199 00:16:55,750 --> 00:17:03,610 Olen kertonut teille, että ei ole toivoa tämän tuloksena CS50 200 00:17:03,610 --> 00:17:06,119 koska ketjutus ei ole +. 201 00:17:06,119 --> 00:17:08,440 Mitä luulette tämän tulee päätyä? 202 00:17:10,359 --> 00:17:13,460 Olen rehellisesti ei ole aavistustakaan. 203 00:17:14,250 --> 00:17:16,460 Se näyttää siltä kuin se on vain 50. 204 00:17:16,460 --> 00:17:21,490 Se näkee merkkijonon, ja veikkaan jos laitamme 123CS - 205 00:17:21,490 --> 00:17:29,640 Se näkee ensimmäinen merkkijono, se yrittää lukea kokonaisluku sitä tai numero siitä. 206 00:17:29,640 --> 00:17:31,710 Tässä tapauksessa se näkee 123CS. 207 00:17:31,710 --> 00:17:35,190 "Se ei ole järkeä koska kokonaisluku, joten olen juuri menossa ajatella 123." 208 00:17:35,190 --> 00:17:38,580 Joten 123 + 50 tulee olemaan 173. 209 00:17:38,580 --> 00:17:40,740 Ja tässä se alkaa lukea tätä kokonaisluku. 210 00:17:40,740 --> 00:17:45,690 Se ei näe mitään, niin se vain kohtelee sitä kuin 0. Joten 0 + 50 tulee olemaan 50. 211 00:17:45,690 --> 00:17:51,600 Tämä Oletan aikoo tehdä jotain vastaavaa. 212 00:17:51,600 --> 00:17:54,310 Ajattelen 99. 213 00:17:54,310 --> 00:17:57,580 Joo, koska se tulee ottamaan ensimmäisen - 214 00:18:12,880 --> 00:18:15,730 Niin 99. 215 00:18:15,730 --> 00:18:21,970 Täällä (10/7), jos tämä olisi C, mitä se palaa? 216 00:18:23,700 --> 00:18:29,630 [Opiskelija] 1. >> Joo, se olisi 1 koska 10/7 on jakamalla 2 kokonaislukuja. 217 00:18:29,630 --> 00:18:32,910 Kokonaisluku jaettuna kokonaisluku on palaamassa kokonaisluku. 218 00:18:32,910 --> 00:18:37,750 Se ei voi palata 1 piste mitä se olisi, niin se on juuri menossa takaisin 1. 219 00:18:37,750 --> 00:18:46,120 Täällä tulostus (10/7), se tulee todella tulkita. 220 00:18:46,120 --> 00:18:53,760 Ja tämä tarkoittaa, että jos todella haluat tehdä kokonaisluku pyöristämistä ja muuta vastaavaa, 221 00:18:53,760 --> 00:18:59,950 sinun ei tarvitse tehdä tulosta (lattia (10/7)); 222 00:18:59,950 --> 00:19:08,460 C on varmaankin outoa, että voit luottaa kokonaisluku katkaisumerkki säännöllisesti, 223 00:19:08,460 --> 00:19:12,260 mutta PHP ei voi, koska se automaattisesti muuttaa sen float. 224 00:19:13,430 --> 00:19:17,610 Ja sitten (7 + true); mitä mieltä olette siitä, että tulee olemaan? 225 00:19:18,550 --> 00:19:23,640 Arvaan 8, jos se aikoo tulkita totta kuin 1. 226 00:19:23,640 --> 00:19:25,740 Se näyttää siltä kuin se on 8. 227 00:19:25,740 --> 00:19:31,710 >> Joten mitä olemme tehneet viimeisen 10 minuutin sinun pitäisi ehdottomasti koskaan tehdä. 228 00:19:31,710 --> 00:19:39,870 Näet koodin tämä. 229 00:19:39,870 --> 00:19:42,700 Sen ei tarvitse olla niin yksinkertaista kuin tämä. 230 00:19:42,700 --> 00:19:47,240 Voisit olla 2 muuttujia, ja 1 muuttuja sattuu olemaan merkkijono 231 00:19:47,240 --> 00:19:51,310 ja muut muuttuvat sattuu olemaan int, ja sitten lisäät nämä muuttujat yhdessä. 232 00:19:51,310 --> 00:20:00,120 Koska PHP on dynaamisesti kirjoitettu ja se ei tee minkäänlaista tarkkailun sinulle 233 00:20:00,120 --> 00:20:03,640 ja koska se on heikosti kirjoitettu ja koska se vain automaattisesti heittää nämä asiat yhdessä 234 00:20:03,640 --> 00:20:11,490 ja kaikki toimii, on vaikea edes tietää, että tämä muuttuja on merkkijono nyt, 235 00:20:11,490 --> 00:20:14,930 joten minun ei pitäisi lisätä sen tässä muuttuja, joka on kokonaisluku. 236 00:20:18,780 --> 00:20:24,560 Paras käytäntö on, jos muuttuja on merkkijono, pitää sen merkkijono ikuisesti. 237 00:20:24,560 --> 00:20:26,980 Jos muuttuja on int, pitää sen int ikuisesti. 238 00:20:26,980 --> 00:20:30,770 Jos haluat käsitellä kokonaislukuja ja jouset, 239 00:20:30,770 --> 00:20:36,970 voit käyttää varsint - se on JavaScript. 240 00:20:36,970 --> 00:20:42,520 Intval. Teen tämän kaiken aikaa. PHP ja JavaScript olen sekaisin kaikesta. 241 00:20:42,520 --> 00:20:47,600 Joten intval on palaamassa kokonaislukuarvo muuttujan. 242 00:20:47,600 --> 00:20:56,550 Jos me kulkea "print (intval ('123 ')); saat 123. 243 00:21:06,820 --> 00:21:15,850 Intval itse ei aio tehdä tarkastus meille, että se on vain kokonaisluku. 244 00:21:15,850 --> 00:21:20,460 PHP käsikirja, on vain niin paljon toimintoja käytettävissä, 245 00:21:20,460 --> 00:21:26,560 joten tässä Luulen mitä haluan käyttää on is_numeric ensin. 246 00:21:26,560 --> 00:21:32,590 Olen arvaamaan, että palautetaan false. 247 00:21:32,590 --> 00:21:35,780 Se on toinen asia, joka meidän täytyy mennä yli on ===. 248 00:21:37,850 --> 00:21:44,020 Joten is_numeric ('123df '), et ajattele, että is_numeric. 249 00:21:44,020 --> 00:21:46,720 C sinulla olisi toistaa kaikkia merkkejä 250 00:21:46,720 --> 00:21:50,410 ja tarkista, onko jokainen merkki on numero tai jotain. 251 00:21:50,410 --> 00:21:53,850 Täällä is_numeric aikoo tehdä meille, 252 00:21:53,850 --> 00:21:56,520 ja se palaa vääriä. 253 00:21:56,520 --> 00:22:02,120 Joten kun tulostetaan, että se tulostaa mitään, joten tässä olen vertaamalla sitä nähdä, 254 00:22:02,120 --> 00:22:05,490 sinä satut olemaan väärä? Ja nyt se tulostetaan 1. 255 00:22:05,490 --> 00:22:10,060 Ilmeisesti se tulostaa 1 todeksi sijasta tulostaa totta kuin totta. 256 00:22:10,060 --> 00:22:15,790 Ihmettelen jos en print_r. Ei, se ei vieläkään 1. 257 00:22:15,790 --> 00:22:26,760 >> Palatakseni ===, == edelleen olemassa, 258 00:22:26,760 --> 00:22:32,260 ja jos puhut Tommy hän sanoo == on täysin kunnossa. 259 00:22:32,260 --> 00:22:37,700 Aion sanoa == on kauhea, ja sinun ei pitäisi koskaan käyttää ==. 260 00:22:37,700 --> 00:22:44,870 Erona on, että == vertaa asioita 261 00:22:44,870 --> 00:22:48,450 jossa se voi olla totta, vaikka he eivät samaa tyyppiä, 262 00:22:48,450 --> 00:22:53,810 katsoo === vertaa asioita ja ensin se tarkistaa ne samaa tyyppiä? 263 00:22:53,810 --> 00:22:58,010 Kyllä. Okei, nyt aion nähdä, jos he todella verrata olla yhtä. 264 00:22:58,010 --> 00:23:08,890 Saat outoja asioita, kuten 10 vastaa - Katsotaan, mitä se sanoo. 265 00:23:08,890 --> 00:23:15,570 Niin ('10 '== '1 e1'); 266 00:23:15,570 --> 00:23:17,980 Tämä palauttaa true. 267 00:23:17,980 --> 00:23:21,420 Onko kellään mitään arvauksia miksi tämä palauttaa totta? 268 00:23:25,180 --> 00:23:27,120 Se ei ole vain siitä. Ehkä tämä on vihje. 269 00:23:27,120 --> 00:23:33,170 Mutta jos muutan se, f - eihän se! Pidän käyttäen lainausmerkkeihin. 270 00:23:33,170 --> 00:23:38,780 Syy lainausmerkit ovat huutaa minulle, koska olen koonnut tämän lainausmerkkeihin. 271 00:23:38,780 --> 00:23:43,850 Niin voisin paeta lainausmerkit täällä, mutta puolilainausmerkkejä helpompi. 272 00:23:43,850 --> 00:23:49,120 So ('10 '== '1 f1'); ei tulosta totta. ('10 '== '1 E1); tulostaa totta. 273 00:23:49,120 --> 00:23:56,330 [Opiskelija] Onko se hex? >> Se ei ole hex, mutta se on lähellä, että se on kuin - 274 00:23:56,330 --> 00:24:01,060 1E1, tieteellinen merkintätapa. 275 00:24:01,060 --> 00:24:07,950 Se tunnistaa 1E1 kuin 1 * 10 ^ 1 tai mitä tahansa. 276 00:24:07,950 --> 00:24:11,510 Ne ovat yhtä kokonaislukuja. 277 00:24:11,510 --> 00:24:15,930 Jos teemme === sitten se tulee olemaan väärä. 278 00:24:15,930 --> 00:24:28,490 En oikeastaan ​​tiedä, jos teemme == entä (10 ja '10abc ');? Selvä. Niin se on totta. 279 00:24:28,490 --> 00:24:35,940 Eli aivan kuten silloin teit (10 + '10abc '), ja se olisi 20, 280 00:24:35,940 --> 00:24:38,800 tässä (10 == '10abc '); on tosi. 281 00:24:38,800 --> 00:24:45,350 Vielä pahempaa on asioita, kuten (epätosi == NULL); on totta 282 00:24:45,350 --> 00:24:52,210 tai (false == 0); on tosi, (false == []); 283 00:24:52,210 --> 00:25:00,970 On outo tapauksia - Se on yksi niistä outo tapauksista. 284 00:25:00,970 --> 00:25:08,110 Huomaa, että (väärät == []); on totta. 285 00:25:08,110 --> 00:25:11,950 ('0 '== False); on totta. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); On väärä. 287 00:25:16,090 --> 00:25:19,090 Joten == ei ole millään tavalla transitiivinen. 288 00:25:19,090 --> 00:25:26,830 a voi olla yhtä suuri kuin b ja a voi olla yhtä suuri kuin c, 289 00:25:26,830 --> 00:25:29,340 mutta b ei ehkä ole yhtä suuri kuin c. 290 00:25:29,340 --> 00:25:35,580 Se kauhistus minulle, ja sinun tulisi aina käyttää ===. 291 00:25:35,580 --> 00:25:38,590 [Opiskelija] Voimmeko tehdä! == Samoin? >> [Bowden] Kyllä. 292 00:25:38,590 --> 00:25:44,600 Vastine olisi! = Ja! ==. 293 00:25:44,600 --> 00:25:48,230 Tämä on itse tuonut esiin PSET spec 294 00:25:48,230 --> 00:25:52,000 jossa paljon toimintoja Return - 295 00:25:52,000 --> 00:25:53,890 PHP käsikirja on hyvä tästä. 296 00:25:53,890 --> 00:25:59,140 Se tuo iso punainen ruutu "Tämä palauttaa false, jos siellä virhe." 297 00:25:59,140 --> 00:26:03,940 Mutta takaisin 0 on täysin järkevä asia palata. 298 00:26:03,940 --> 00:26:08,250 Mieti mikä tahansa toiminto, jota odotetaan palaavan kokonaisluku. 299 00:26:11,250 --> 00:26:17,880 Sanotaan tämä toiminto on tarkoitus laskea rivien tiedoston tai jotain. 300 00:26:17,880 --> 00:26:23,490 Normaalioloissa ohitat tämän toiminnon tiedosto 301 00:26:23,490 --> 00:26:27,120 ja se tulee palauttaa kokonaisluvun, joka edustaa rivien. 302 00:26:27,120 --> 00:26:30,820 Joten 0 on täysin kohtuullinen määrä, jos tiedosto on vain tyhjää. 303 00:26:30,820 --> 00:26:36,810 Mutta entä jos ohitat sen Virheellinen tiedosto ja toiminta tapahtuu palauttaa false 304 00:26:36,810 --> 00:26:38,860 jos ohitat sen virheellinen tiedosto? 305 00:26:38,860 --> 00:26:46,500 Jos vain tehdä == et erottaa asian välillä virheellinen tiedosto ja tyhjän tiedoston. 306 00:26:48,870 --> 00:26:51,350 Käytä aina ===. 307 00:26:55,690 --> 00:26:58,000 Siinä kaikki nämä. 308 00:26:58,000 --> 00:27:01,660 >> PHP, array tyyppi on erilainen kuin mitä olet tottunut C. 309 00:27:01,660 --> 00:27:06,650 Todellakin, olet ehkä jo huomannut tämän yläpuolella, kun näki, että tämä on tyyppiä array. 310 00:27:06,650 --> 00:27:15,640 Kiinnike syntaksi on uusi, koska PHP 5.4, joka on uusin versio PHP. 311 00:27:15,640 --> 00:27:36,960 Ennen tätä oli aina kirjoittaa array ('' -> 1, 'b' -> 2. 312 00:27:36,960 --> 00:27:41,160 Se oli rakentaja varten array. 313 00:27:41,160 --> 00:27:45,950 Nyt PHP on vihdoin ympäri mukava syntaksi vain hakasulkeissa 314 00:27:45,950 --> 00:27:50,900 joka on vain niin paljon parempi kuin array. 315 00:27:50,900 --> 00:27:54,480 Mutta ottaen PHP 5.4 on uusin versio, 316 00:27:54,480 --> 00:27:59,090 saatat kohdata paikkoja, jotka eivät edes ole PHP 5.3. 317 00:27:59,090 --> 00:28:08,220 Kesän aikana törmäsimme asiaa jossa PHP 5.3 oli mitä meillä oli laitteen, 318 00:28:08,220 --> 00:28:14,480 mutta palvelin me käyttöön kaikki luokan kirja ja esittää ja kaikki jutut 319 00:28:14,480 --> 00:28:16,750 oli PHP 5.4. 320 00:28:16,750 --> 00:28:23,060 Ei tietäen, kehitimme 5,3, työnnetään 5,4, 321 00:28:23,060 --> 00:28:25,660 ja nyt yhtäkkiä mikään meidän koodi toimii 322 00:28:25,660 --> 00:28:28,680 koska siellä sattui ollut muutoksia välillä 5,3 ja 5,4 323 00:28:28,680 --> 00:28:31,030 jotka eivät ole taaksepäin yhteensopiva, 324 00:28:31,030 --> 00:28:35,770 ja meidän täytyy mennä ja korjata kaikki meidän asioita, jotka eivät toimi PHP 5.4. 325 00:28:39,210 --> 00:28:42,320 Tämän luokan, koska laite ei ole PHP 5.4, 326 00:28:42,320 --> 00:28:45,490 se on täysin hieno käyttää hakasulkeissa. 327 00:28:47,240 --> 00:28:50,440 Mutta jos etsit ylös asioita ympäri Internetiä, 328 00:28:50,440 --> 00:28:54,880 Jos etsit jonkinlaisen array kamaa, todennäköisesti olet menossa nähdä 329 00:28:54,880 --> 00:29:02,020 täsmentää array rakentaja syntaksin koska on ollut voimassa vuodesta PHP syntyi 330 00:29:02,020 --> 00:29:07,340 ja hakasulje syntaksi on ollut noin viimeiset pari kuukautta 331 00:29:07,340 --> 00:29:10,020 tai kun 5,4 tuli ympäri. 332 00:29:10,020 --> 00:29:12,710 Näin voit indeksi. 333 00:29:12,710 --> 00:29:30,610 Aivan kuin C miten olisit indeksi hakasulkeissa kuten $ array [0], $ array [1], $ array [2], 334 00:29:30,610 --> 00:29:36,320 te indeksi samalla tavalla, jos sattuu olemaan teidän indekseihin on jouset. 335 00:29:36,320 --> 00:29:40,440 Joten $ array ['a'] ja $ array ['b']. 336 00:29:40,440 --> 00:29:47,410 $ Array [b]. Miksi tämä olisi väärin? 337 00:29:52,490 --> 00:29:59,870 Se luultavasti luo varoituksen, mutta toimivat edelleen. PHP taipumus tehdä. 338 00:29:59,870 --> 00:30:04,890 Se pyrkii vain, "Minä aion varoittaa tästä, mutta olen juuri menossa pitämään menossa 339 00:30:04,890 --> 00:30:07,550 "Ja tehdä mitä voin." 340 00:30:07,550 --> 00:30:11,500 Se luultavasti kääntää tämän merkkijono, 341 00:30:11,500 --> 00:30:15,000 mutta on mahdollista, että jossain vaiheessa aikaisemmin joku sanoi 342 00:30:15,000 --> 00:30:20,180 define b on "Hello World". 343 00:30:20,180 --> 00:30:28,740 Joten nyt B voisi olla vakio ja $ array [b] todella tehdä "Hello World". 344 00:30:28,740 --> 00:30:32,380 Mielestäni tässä vaiheessa, tai ainakin meidän PHP-asetukset, 345 00:30:32,380 --> 00:30:37,870 Jos yrität indeksinä ryhmässä ja että avainta ei ole, se ei onnistu. 346 00:30:37,870 --> 00:30:40,150 En usko, että se tulee vain varoittaa sinua. 347 00:30:40,150 --> 00:30:44,560 Tai ainakin voit asettaa sen niin, että se ei vain varoittaa, se vain suoraan ylös epäonnistuu. 348 00:30:44,560 --> 00:30:49,290 >> Tapa voit tarkistaa, onko siellä todella on sellainen indeksi on isset. 349 00:30:49,290 --> 00:30:54,690 Joten isset ($ array ['Hello World']) palauttaa false. 350 00:30:54,690 --> 00:30:59,160 isset ($ array ['b']) palauttaa true. 351 00:31:06,830 --> 00:31:09,880 Voit sekoittaa näitä syntaxes. 352 00:31:15,060 --> 00:31:22,440 Olen melko varma, mitä tämä joukko olisi lopulta on - Voimme testata sitä. 353 00:31:43,290 --> 00:31:45,700 Voi, minä tarvitsen PHPWord. 354 00:31:53,960 --> 00:32:00,260 Tämä on sekoitus syntaksia, jossa voit määrittää, mikä avain on 355 00:32:00,260 --> 00:32:03,330 ja et määritä mikä avain on. 356 00:32:03,330 --> 00:32:05,520 Joten 3 täällä on arvo. 357 00:32:05,520 --> 00:32:08,080 Et ole nimenomaisesti sanonut mitä sen avain tulee olemaan. 358 00:32:08,080 --> 00:32:11,670 Mitä luulet sen avain tulee olemaan? 359 00:32:11,670 --> 00:32:21,410 [Opiskelija] 0. >> Arvaan 0 vain koska se on ensimmäinen emme ole määritelty. 360 00:32:21,410 --> 00:32:23,500 Voimme itse tehdä pari näistä tapauksista. 361 00:32:23,500 --> 00:32:28,030 Joten print_r on tulosta rekursiivinen. Se tulostaa koko taulukon. 362 00:32:28,030 --> 00:32:32,700 Se tulostaa subarrays of array onko mitään. 363 00:32:32,700 --> 00:32:36,630 Joten print_r ($ array); php.test.php. 364 00:32:36,630 --> 00:32:38,810 Se näyttää antoi sille 0. 365 00:32:38,810 --> 00:32:43,530 On todellakin jotain pitää mielessä täällä, mutta palaamme siihen toiseen. 366 00:32:43,530 --> 00:32:45,850 Mutta mitä jos satun tekemään tätä indeksiä 1? 367 00:32:45,850 --> 00:32:51,170 PHP ei erotella merkkijono indeksit ja kokonaisluku indeksit, 368 00:32:51,170 --> 00:33:00,280 joten tässä vaiheessa olen juuri määritelty indeksi 1 ja voin tehdä molempia $ array [1] ja $ array ['1 '] 369 00:33:00,280 --> 00:33:06,250 ja se on sama indeksi, ja samaa avainta. 370 00:33:06,250 --> 00:33:13,000 Joten nyt mitä luulet 3 tulee olemaan? >> [Opiskelija] 2. >> [Bowden] Arvaan 2. 371 00:33:16,000 --> 00:33:18,690 Joo. Se on 2. 372 00:33:18,690 --> 00:33:24,790 Mitä jos teimme tämän on 10, tämä on 4? Mitä mieltä olette indeksi 3 tulee olemaan? 373 00:33:27,360 --> 00:33:29,110 Ajattelen 11. 374 00:33:29,110 --> 00:33:33,060 Oma arvaus siitä mitä PHP tekee - ja mielestäni olen nähnyt tämän ennenkin - 375 00:33:33,060 --> 00:33:39,760 on se vain seuraa mitä korkeimman numeerista indeksiä sitä käytetään toistaiseksi on. 376 00:33:39,760 --> 00:33:44,230 Se ei ikinä antaa merkkijonon indeksi 3. Se on aina numeerista indeksiä. 377 00:33:44,230 --> 00:33:47,690 Niin se pitää kirjaa korkein se on määritetty niin pitkälle, joka sattuu olemaan 10, 378 00:33:47,690 --> 00:33:52,540 ja se tulee antaa 11-3. 379 00:33:52,540 --> 00:34:02,110 Mitä minä sanoin, huomaa miten se tulostaa tämän taulukon. 380 00:34:02,110 --> 00:34:06,850 Se tulostaa näppäin 10, näppäin 4, näppäin 11, d. 381 00:34:06,850 --> 00:34:09,790 Tai edes Tehdään - 382 00:34:15,760 --> 00:34:22,489 Luulen etten laita 0, mutta se on tulostus 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 Mitä jos vaihtaa täällä? Tai mennään todella vaihtaa nämä 2. 384 00:34:29,330 --> 00:34:31,940 Nyt se tulostaa 2, 1, 3, 4. 385 00:34:31,940 --> 00:34:41,270 PHP: n paneelit eivät ole aivan kuten säännöllinen hash taulukon. 386 00:34:41,270 --> 00:34:45,570 On täysin perusteltua ajatella niitä hash taulukoita 99% ajasta. 387 00:34:45,570 --> 00:34:53,790 Mutta teidän hash taulukoita ei ole mitään tunnetta järjestyksessä asiat lisättiin. 388 00:34:53,790 --> 00:34:56,639 Joten heti kun laita se tiiviste, 389 00:34:56,639 --> 00:35:00,590 olettaa siellä ole linkitetty lista ja voit arvioida sisällä linkitetty lista 390 00:35:00,590 --> 00:35:03,980 joka lisättiin ensin. 391 00:35:03,980 --> 00:35:10,060 Mutta täällä me Lisätään 2 ensimmäistä ja se tietää milloin se tulostaa tämän taulukon että 2 tulee ensin. 392 00:35:10,060 --> 00:35:13,090 Se ei tulosta se vain tahansa järjestyksessä. 393 00:35:13,090 --> 00:35:17,550 Tekninen tietorakenne että se käyttää on tilattu kartta, 394 00:35:17,550 --> 00:35:24,690 joten se kuvaa avaimia arvoja ja se muistaa järjestyksessä, jossa ne avaimet lisättiin. 395 00:35:24,690 --> 00:35:31,600 Pohjimmiltaan se on joitakin komplikaatioita missä se harmittaa todella - 396 00:35:31,600 --> 00:35:34,510 Sanotaan sinulla array 0, 1, 2, 3, 4, 5 397 00:35:34,510 --> 00:35:37,700 ja haluat ottaa indeksiin 2. 398 00:35:37,700 --> 00:35:47,750 Yksi tapa tehdä se, katsotaanpa mitä se näyttää. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 Katkaistulla sattuu poistaa asetukset sekä muuttujien ja taulukkohakemistojen. 401 00:35:54,880 --> 00:35:58,630 Joten katkaistu ($ array [2]); 402 00:35:58,630 --> 00:36:03,430 Nyt mitä tämä tulee näyttämään? 2 on vain mennyt, niin se on täysin kunnossa. 403 00:36:03,430 --> 00:36:11,670 Enemmän harmittaa on, jos haluat asioita todella olla kuin array. 404 00:36:11,670 --> 00:36:14,910 Laitan satunnaislukuja. 405 00:36:14,910 --> 00:36:20,400 Nyt huomaa minun indeksit. 406 00:36:20,400 --> 00:36:26,860 Haluan sen vain olla kuin C array minne se menee 0: sta pituudesta - 1 407 00:36:26,860 --> 00:36:30,810 ja voin toistaa sen yli sellaisenaan. 408 00:36:30,810 --> 00:36:38,520 Mutta heti kun poistaa asetukset toisen indeksin, mikä oli indeksin 3 ei tullut indeksi 2. 409 00:36:38,520 --> 00:36:44,790 Sen sijaan se vain poistaa, että indeksin ja nyt mennään 0, 1, 3, 4. 410 00:36:44,790 --> 00:36:48,740 Tämä on täysin järkevää. 411 00:36:48,740 --> 00:36:53,950 Se on vain ärsyttävää, ja sinun täytyy tehdä asioita, kuten array liitos. Joo. 412 00:36:53,950 --> 00:36:57,200 >> [Opiskelija] Mitä tapahtuisi, jos olisit varten silmukka 413 00:36:57,200 --> 00:36:59,630 ja halusit mennä yli kaikki elementit? 414 00:36:59,630 --> 00:37:02,290 Kun se osuma 2, olisi se tuottaa koskaan? 415 00:37:02,290 --> 00:37:10,150 Iteroimalla yli array. On 2 tapaa voit tehdä sen. 416 00:37:10,150 --> 00:37:12,770 Voit käyttää säännöllisesti varten silmukka. 417 00:37:12,770 --> 00:37:22,000 Tämä on toinen monimutkaisuus PHP. 418 00:37:22,000 --> 00:37:27,420 Useimmat kielet, sanoisin, jonkinlainen pituudesta tai LEN tai jotain 419 00:37:27,420 --> 00:37:30,470 osoittaa pituus array. 420 00:37:30,470 --> 00:37:32,820 PHP on määrä. 421 00:37:32,820 --> 00:37:36,160 Joten count ($ array); $ i + +) 422 00:37:36,160 --> 00:37:42,950 Toivotaan vain print ($ array [$ i]); 423 00:37:45,920 --> 00:37:48,820 Notice: Undefined offset: 2. 424 00:37:48,820 --> 00:37:51,610 Se on vain menossa epäonnistua. 425 00:37:51,610 --> 00:38:03,020 Tämä on syy, että suurin osa sinun ei tarvitse toistaa yli array näin. 426 00:38:03,020 --> 00:38:07,110 Se voi olla liioittelua, mutta sinun ei tarvitse koskaan toistaa yli array näin 427 00:38:07,110 --> 00:38:19,410 koska PHP tarjoaa foreach syntaksi jossa foreach ($ array $ tuote). 428 00:38:19,410 --> 00:38:31,830 Nyt jos me painamme ($ item); - we'll keskustella toiseen - joka toimii hienosäätää. 429 00:38:31,830 --> 00:38:38,960 Siten, että foreach toimii on ensimmäinen argumentti on matriisi, että olet iteroimalla yli. 430 00:38:38,960 --> 00:38:44,060 Ja toinen argumentti, kohta, läpi jokaisen läpikulun varten silmukan 431 00:38:44,060 --> 00:38:52,690 se tulee ottaa seuraava asia array. Joten muistakaa array on järjestyksessä. 432 00:38:52,690 --> 00:38:55,690 Ensimmäistä kertaa läpi ja silmukka, kohta tulee olemaan 123 433 00:38:55,690 --> 00:38:59,540 niin se on 12 niin se on 13 niin se on 23 niin se on 213. 434 00:38:59,540 --> 00:39:04,670 Asiat saavat todella outoa, kun teet jotain foreach. 435 00:39:04,670 --> 00:39:07,480 Katsotaan mitä tapahtuu, koska sinun ei pitäisi koskaan tehdä. 436 00:39:07,480 --> 00:39:13,320 Mitä jos me katkaistu ($ array [1]); 437 00:39:20,410 --> 00:39:26,030 Se oli luultavasti odotettavissa. 438 00:39:26,030 --> 00:39:30,950 Olet iteroimalla tänä array, ja joka kerta olet katkaisumenetelmä ensimmäinen indeksi. 439 00:39:30,950 --> 00:39:39,720 Joten indeksi 0, ensimmäinen asia, kohta vie arvoon 0, niin se tulee olemaan 123. 440 00:39:39,720 --> 00:39:44,630 Mutta sisällä on silmukan me unset indeksi 1, niin se tarkoittaa 12 on mennyt. 441 00:39:44,630 --> 00:39:57,480 Joten tulosta. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL on vain rivinvaihto, mutta se on teknisesti enemmän kannettavia 443 00:40:03,580 --> 00:40:08,890 koska rivinvaihdot Windowsin eroaa rivinvaihtoja Mac ja UNIX. 444 00:40:08,890 --> 00:40:18,040 Windows rivinvaihto \ r \ n, kun taas kaikkialla muualla se on yleensä vain olla \ n. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL on konfiguroitu siten, että se käyttää riippumatta rivinvaihto järjestelmästä on. 446 00:40:25,150 --> 00:40:29,310 Niin tulosta se. Älkäämme print_r ($ array) lopussa. 447 00:40:32,830 --> 00:40:37,390 Minulla ei ollut aavistustakaan siitä, että se olisi käyttäytymistä. 448 00:40:41,740 --> 00:40:48,960 Kohta vielä vie arvo 12 vaikka me poistaa asetukset 12 ennen kuin koskaan pääsi sen array. 449 00:40:52,770 --> 00:40:58,840 Älä ota minun sana tähän, mutta se näyttää foreach luo kopion array 450 00:40:58,840 --> 00:41:02,160 ja sitten kohta vie kaikki arvot kyseisen kopion. 451 00:41:02,160 --> 00:41:07,760 Joten vaikka muutat taulukon sisällä on silmukka, 452 00:41:07,760 --> 00:41:17,240 se ei välitä. Tuote tulee ottaa alkuperäiset arvot. 453 00:41:17,240 --> 00:41:19,240 Yritetään katkaisemiseen sitä. 454 00:41:19,240 --> 00:41:24,460 Mitä jos tämä on $ array [1] = "hello"; 455 00:41:24,460 --> 00:41:31,770 Vaikka laitoimme "hello" osaksi array, kohta koskaan vie tämän arvon. 456 00:41:31,770 --> 00:41:37,430 On toinenkin syntaksi foreach silmukoita 457 00:41:37,430 --> 00:41:45,900 jossa voit laittaa 2 muuttujat erottaa nuolella. 458 00:41:45,900 --> 00:41:49,680 Tämä ensimmäinen muuttuja tulee olemaan avain, että arvo, 459 00:41:49,680 --> 00:41:53,050 ja tämä toinen muuttuja tulee olemaan täsmälleen sama kohde. 460 00:41:53,050 --> 00:42:01,610 Tämä on mielenkiinnoton täällä, mutta jos menemme takaisin meidän alkuperäiseen tapauksessa "" -> 1, 461 00:42:01,610 --> 00:42:06,090 "B" -> 1, 462 00:42:06,090 --> 00:42:14,470 , jos me vain toistaa kullekin ryhmälle kuin kohde, kohde tulee olemaan 1 joka kerta. 463 00:42:14,470 --> 00:42:18,170 Mutta jos haluamme myös tietää liittyvä avain että kohteen 464 00:42:18,170 --> 00:42:25,230 Sitten teemme kuten $ avain -> $ kohde. 465 00:42:25,230 --> 00:42:31,980 Joten nyt voimme tehdä tulosta ($ avain. ":". 466 00:42:31,980 --> 00:42:39,380 Nyt se iteroimalla yli ja tulostaminen kukin avain ja siihen liittyvä arvo. 467 00:42:39,380 --> 00:42:47,030 >> Ylimääräinen asia, jonka voimme tehdä foreach silmukoita on saatat nähdä tämän syntaksin. 468 00:42:47,030 --> 00:42:54,770 Et-ennen muuttujien nimet ovat yleensä miten PHP tekee viittauksia. 469 00:42:54,770 --> 00:43:00,460 Jos viitteet ovat hyvin samanlaisia ​​osoittimia, 470 00:43:00,460 --> 00:43:04,820 sinulla ei ole viitteitä, joten et koskaan käsitellä muistia suoraan. 471 00:43:04,820 --> 00:43:12,620 Mutta sinulla ei ole viitteitä missä 1 muuttuja tarkoittaa samaa kuin toinen muuttuja. 472 00:43:12,620 --> 00:43:21,450 Sisällä täällä tehdäänpä $ kohde. Mennään takaisin 1, 10. 473 00:43:21,450 --> 00:43:28,800 Tehdään $ kohde + +; on edelleen olemassa PHP. Voit silti tehdä + +. 474 00:43:28,800 --> 00:43:38,260 php.test.php. Minun täytyy tulostaa sen. print_r ($ array); 475 00:43:38,260 --> 00:43:42,730 Me tulostaa 2, 11. 476 00:43:42,730 --> 00:43:49,560 Jos olisin juuri tehnyt foreach ($ array $ tuote) niin kohta tulee arvo 1 477 00:43:49,560 --> 00:43:54,190 ensimmäisen kerran silmukan läpi. Se kasvattaa 1-2 ja sitten olemme tehneet. 478 00:43:54,190 --> 00:43:57,260 Joten sitten se menee läpi toisen läpikulun silmukan ja että kohde on 10. 479 00:43:57,260 --> 00:44:01,570 Se kasvattaa kohde 11, ja sitten se on vain heitetään pois. 480 00:44:01,570 --> 00:44:06,670 Sitten print_r ($ array) ja katsotaan, että tämä on vain 1, 10. 481 00:44:06,670 --> 00:44:09,070 Joten lisäys teimme katosi. 482 00:44:09,070 --> 00:44:13,410 Mutta foreach ($ array & $ tuote) 483 00:44:13,410 --> 00:44:21,910 Nyt tämä kohde on sama kohde kuin tämä täällä. Se on sama asia. 484 00:44:21,910 --> 00:44:26,820 Joten $ kohde + + on muuttamassa array 0. 485 00:44:29,330 --> 00:44:41,850 Periaatteessa voit myös tehdä $ k -> $ kohde ja voit tehdä $ array [$ k] + +; 486 00:44:41,850 --> 00:44:48,650 >> Joten toinen tapa, että olemme vapaita muuttamaan kohteen, 487 00:44:48,650 --> 00:44:54,070 mutta se ei muuta alkuperäistä array. 488 00:44:54,070 --> 00:44:59,720 Mutta jos käytämme k, joka on tärkein, voimme vain indeksinä meidän array käyttäen, että keskeiset 489 00:44:59,720 --> 00:45:01,530 ja kasvattaa sitä. 490 00:45:01,530 --> 00:45:05,410 Tämä suoremmin muuttaa alkuperäistä array. 491 00:45:05,410 --> 00:45:10,690 Voit jopa tehdä, että jos jostain syystä et halunnut kyky muuttaa - 492 00:45:10,690 --> 00:45:13,510 Oikeastaan ​​tämä on täysin kohtuullinen. 493 00:45:13,510 --> 00:45:16,020 Et halua joutua kirjoittamaan $ array [$ k] + +, 494 00:45:16,020 --> 00:45:27,890 halusit kirjoittaa $ kohde + +, mutta silti halusi sanoa if ($ k === '') 495 00:45:27,890 --> 00:45:30,620 Sitten kasvattaa kohde ja sitten tulostaa meidän array. 496 00:45:30,620 --> 00:45:36,290 Joten nyt mitä odotamme print_r tehdä? Mitä arvoja pitäisi tulostaa? 497 00:45:36,290 --> 00:45:43,770 [Opiskelija] 2 ja 10. >> [Bowden] Vain jos avain oli "" me itse tulostaa sen. 498 00:45:51,940 --> 00:45:55,670 >> Olet luultavasti hyvin harvoin, jos koskaan, on määriteltävä toimii PHP- 499 00:45:55,670 --> 00:46:03,370 mutta saatat nähdä jotain vastaavaa, jossa voit määrittää funktion kaltainen toiminto riippumatta. 500 00:46:03,370 --> 00:46:09,900 Yleensä sanoisit ($ foo, $ bar) ja sitten määritellä sen olevan mitä. 501 00:46:09,900 --> 00:46:17,580 Mutta jos teen tämän, niin se tarkoittaa, että mitä soittaa mitä tahansa, 502 00:46:17,580 --> 00:46:25,110 mitä vaaditaan Baz, joten ensimmäinen argumentti johdetaan baz voidaan muuttaa. 503 00:46:25,110 --> 00:46:38,100 Tehdään $ foo + +; 504 00:46:38,100 --> 00:46:48,020 ja sisällä tässä tehkäämme Baz ($ tuote); 505 00:46:48,020 --> 00:46:52,250 Nyt pyydämme toimintoa. 506 00:46:52,250 --> 00:46:56,780 Väite on ottanut viittaamalla, mikä tarkoittaa, että jos me muuttaa sen 507 00:46:56,780 --> 00:47:00,390 me muutetaan asia hyväksyttiin tuumaa 508 00:47:00,390 --> 00:47:04,420 Ja tulostamiseksi odotamme - ellei Mokasin syntaksi - saimme 2, 11, 509 00:47:04,420 --> 00:47:06,300 joten se oli todella kasvatetaan. 510 00:47:06,300 --> 00:47:08,790 Ilmoituksessa tarvitsemme viittauksia 2 paikkaa. 511 00:47:08,790 --> 00:47:13,050 Mitä jos tein tämän? Mitä tämä tarkoittaa? 512 00:47:13,050 --> 00:47:15,810 [Opiskelija] Se muuttaa. >> Joo. 513 00:47:15,810 --> 00:47:18,290 Tuote on vain kopio arvon jono. 514 00:47:18,290 --> 00:47:26,670 Joten tuote muuttuu 2, mutta array ['a'] on edelleen 1. 515 00:47:26,670 --> 00:47:32,560 Tai mitä jos teen tämän? 516 00:47:32,560 --> 00:47:39,260 Nyt erä lähetetään kopio Baz. 517 00:47:39,260 --> 00:47:46,330 Joten kopio väitettä voidaan kasvatetaan 2, 518 00:47:46,330 --> 00:47:49,240 mutta itse lähetykseen ei koskaan kasvatetaan 2. 519 00:47:49,240 --> 00:47:52,880 Ja kohde on sama asia kuin array kiinnike tahansa, 520 00:47:52,880 --> 00:47:55,380 niin, että matriisi ei koskaan kasvatetaan. 521 00:47:55,380 --> 00:47:57,960 Joten molemmat niistä paikoista tarvitsevat sitä. 522 00:47:57,960 --> 00:48:03,830 >> PHP on yleensä melko fiksu tästä. 523 00:48:03,830 --> 00:48:06,570 Saatat ajatella haluan välittää viittaamalla - 524 00:48:06,570 --> 00:48:09,560 Tämä oli itse asiassa kysymys yhden psets. 525 00:48:09,560 --> 00:48:14,480 Se oli questions.txt juttu, jossa se totesi, 526 00:48:14,480 --> 00:48:19,280 Miksi ehkä haluat välittää tämän struct viittaamalla? 527 00:48:19,280 --> 00:48:21,250 Mikä oli vastaus tähän? 528 00:48:21,250 --> 00:48:25,100 [Opiskelija] Joten sinun ei tarvitse kopioida jotain suurta. >> Joo. 529 00:48:25,100 --> 00:48:32,920 Struct voi olla mielivaltaisen suuri, ja kun ohitat struct niin argumentti 530 00:48:32,920 --> 00:48:36,800 se tarvitsee kopioida että koko struct siirtää sen toiminnon, 531 00:48:36,800 --> 00:48:40,410 katsoo, että jos olet vain siirtää struct viittaamalla 532 00:48:40,410 --> 00:48:46,530 se tarvitsee vain kopioida 4-tavuinen osoite argumentti toiminnon. 533 00:48:48,520 --> 00:48:52,320 PHP on hieman fiksumpi. 534 00:48:52,320 --> 00:49:00,650 Jos minulla on jokin funktio, ja välitän sen joukko 1000 asioita, 535 00:49:00,650 --> 00:49:03,990 se tarkoittaa sitä täytyy kopioida kaikki 1000 nuo asiat 536 00:49:03,990 --> 00:49:10,450 siirtää sen funktio? Sen ei tarvitse tehdä sitä heti. 537 00:49:10,450 --> 00:49:15,940 Jos sisällä Tämän toiminnon koskaan muuttaa foo- 538 00:49:15,940 --> 00:49:22,660 joten jos ($ foo === 'hei') return true.; 539 00:49:22,660 --> 00:49:26,460 Huomaa emme koskaan muutettu väitettä sisällä tätä toimintoa, 540 00:49:26,460 --> 00:49:30,010 mikä tarkoittaa sitä, että mitä johdettiin sisään foo koskaan täytyy kopioida 541 00:49:30,010 --> 00:49:32,100 koska se ei muuta sitä. 542 00:49:32,100 --> 00:49:39,240 Joten miten PHP teosten argumentit ovat aina ohi viite 543 00:49:39,240 --> 00:49:42,170 ennen kuin olet itse yrittää muokata sitä. 544 00:49:42,170 --> 00:49:51,160 Nyt jos sanon $ foo + +, se nyt tekee kopion alkuperäisestä foo ja muokata kopiota. 545 00:49:51,160 --> 00:49:53,090 Tämä säästää aikaa. 546 00:49:53,090 --> 00:49:58,210 Jos olet koskaan kosketa tämän massiivisen valikoiman, et koskaan todella muokata sitä, 547 00:49:58,210 --> 00:50:02,360 sen ei tarvitse tehdä kopio, 548 00:50:02,360 --> 00:50:06,640 katsoo, että jos me vain laittaa tähän et-että tarkoittaa että se ei edes kopioida 549 00:50:06,640 --> 00:50:08,640 vaikka et muokata sitä. 550 00:50:08,640 --> 00:50:10,680 Tämä ongelma on nimeltään kopioi-on-write. 551 00:50:10,680 --> 00:50:17,380 Näet sen muissa paikoissa, varsinkin jos otat käyttöjärjestelmän kurssi. 552 00:50:17,380 --> 00:50:23,880 Copy-on-write on melko tavallinen malli, jossa sinun ei tarvitse kopioida jotain 553 00:50:23,880 --> 00:50:26,650 ellei se todella muuttuu. Joo. 554 00:50:26,650 --> 00:50:29,520 [Opiskelija] Mitä jos sinulla olisi lisäys sisällä testin 555 00:50:29,520 --> 00:50:33,700 joten vain 1 elementti pois 1000 olisi muutettava? 556 00:50:33,700 --> 00:50:38,770 En ole varma. 557 00:50:38,770 --> 00:50:51,250 Mielestäni olisi kopioida koko juttu, mutta se on mahdollista, se on fiksu, että - 558 00:50:51,250 --> 00:51:00,020 Oikeastaan, mitä ajattelen on kuvitella meillä oli array näyttää tältä: $ matriisi2 = [ 559 00:51:00,020 --> 00:51:11,000 Sitten indeksi "" on joukko [1 2 3 4], ja indeksi 'b' on joukko riippumatta. 560 00:51:11,000 --> 00:51:15,380 Tarvitsen pilkut välillä kaikki nämä. Kuvittele olemassa pilkkuja. 561 00:51:15,380 --> 00:51:21,210 Sitten 'c' on arvo 3. 562 00:51:24,210 --> 00:51:26,290 Okei. 563 00:51:26,290 --> 00:51:33,440 Nyt sanotaan teemme $ Baz ($ matriisi2); 564 00:51:33,440 --> 00:51:36,540 jos Baz ei ota tätä viittaamalla. 565 00:51:43,510 --> 00:51:47,370 Joten $ foo ['c'] + +; 566 00:51:47,370 --> 00:51:52,340 Tämä on sellainen esimerkki, jossa olemme kulkee matriisi2 argumentiksi 567 00:51:52,340 --> 00:51:57,010 ja sitten se muutetaan tietyn indeksi taulukon kasvattamalla sitä. 568 00:51:57,010 --> 00:52:01,090 Olen rehellisesti ei ole aavistustakaan, mitä PHP aikoo tehdä. 569 00:52:01,090 --> 00:52:07,200 Se voi helposti tehdä kopion koko juttu, mutta jos se on älykäs, 570 00:52:07,200 --> 00:52:15,030 se tekee kopion näistä näppäimistä, jos tämä on sen erillinen arvo 571 00:52:15,030 --> 00:52:20,620 mutta tämä voidaan vielä osoittaa samaan array 1,2,3,4 572 00:52:20,620 --> 00:52:22,320 ja tämä voidaan vielä osoittaa samaan array. 573 00:52:22,320 --> 00:52:24,170 Minä iPad sen. 574 00:52:28,900 --> 00:52:45,950 Ohitamme tässä array jos tämä kaveri pistettä 3, tämä kaveri pistettä [1,2,3,4], 575 00:52:45,950 --> 00:52:51,350 tämä kaveri osoittaa [34, ...] 576 00:52:51,350 --> 00:52:58,590 Nyt olemme kulkee sen sisään Baz, olemme muuttamiseksi. 577 00:52:58,590 --> 00:53:03,550 Jos PHP on fiksu, se voi vain tehdä - 578 00:53:11,850 --> 00:53:18,230 Meillä oli vielä kopioida muistia, mutta jos siellä oli näitä valtavia sisäkkäisiä subarrays 579 00:53:18,230 --> 00:53:21,560 Emme tarvitse kopioida niitä. 580 00:53:21,560 --> 00:53:27,530 En tiedä, jos se mitä se tekee, mutta voin kuvitella sen näin. 581 00:53:29,050 --> 00:53:36,690 Tämä on myös aika iso etu C yli PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP tekee elämästä paljon helpompaa paljon asioita, 583 00:53:40,320 --> 00:53:45,060 mutta sellaista ei ole aavistustakaan, miten hyvin se suorittaa 584 00:53:45,060 --> 00:53:52,530 koska minulla ei ole aavistustakaan alla huppu kun se tekee näitä kopioita asioita, 585 00:53:52,530 --> 00:53:55,170 Voi, että tulee olemaan vakio aika kopio, 586 00:53:55,170 --> 00:54:01,140 on se vain muuttuu 1 osoitin, se tulee olemaan naurettavan vaikea lineaarinen kopio? 587 00:54:01,140 --> 00:54:03,000 Mitä jos se ei löydä tilaa? 588 00:54:03,000 --> 00:54:06,760 Onko se sitten täytyy juosta roskien keräys saada hieman enemmän tilaa? 589 00:54:06,760 --> 00:54:11,210 Ja roskien kerääminen voi mielivaltaisesti pitkiä. 590 00:54:11,210 --> 00:54:13,600 C sinun ei tarvitse huolehtia näistä asioista. 591 00:54:13,600 --> 00:54:19,780 Jokainen rivi voit kirjoittaa voit melko paljon syytä miten se tulee tehdä. 592 00:54:26,800 --> 00:54:29,150 >> Katsotaanpa taaksepäin näitä. 593 00:54:35,400 --> 00:54:37,520 Kuinka mukavaa on se, että sinun ei tarvitse käsitellä hash toimintoja, 594 00:54:37,520 --> 00:54:39,010 linkitettyjä listoja, tai jotain sellaista? 595 00:54:39,010 --> 00:54:41,980 Koska työskentely hash taulukoita on niin helppoa nyt, tässä hauska puzzle työskennellä. 596 00:54:41,980 --> 00:54:45,920 Avata tiedoston nimeltä unique.php ja se kirjoittaa PHP-ohjelma 597 00:54:45,920 --> 00:54:48,330 (Tunnetaan myös nimellä "kirjoitus"). 598 00:54:48,330 --> 00:54:55,700 Meillä on tapana kutsua heitä skriptit jos he lyhyt asioita, joita voit ajaa komentoriviltä. 599 00:54:55,700 --> 00:55:02,950 Periaatteessa mikä tahansa kieli, että et kääntää mutta aiot suorittaa suoritustiedoston 600 00:55:02,950 --> 00:55:05,920 komentoriviltä, ​​voit soittaa, että komentojonon. 601 00:55:05,920 --> 00:55:08,510 Voisin yhtä hyvin kirjoittaa C-ohjelma, joka tekee tämän, 602 00:55:08,510 --> 00:55:12,300 mutta en sano sitä käsikirjoituksen, koska haluan ensin koota ja sitten ajaa binary. 603 00:55:12,300 --> 00:55:15,480 Mutta tämä PHP-ohjelma aiomme soittaa script. 604 00:55:15,480 --> 00:55:23,830 Tai jos me kirjoitti sen Python tai Perl tai Node.js tai mitään noista asioista, 605 00:55:23,830 --> 00:55:26,500 olimme kutsua niitä kaikkia skriptit koska ajaa ne komentorivin 606 00:55:26,500 --> 00:55:30,040 mutta emme kääntää niitä. 607 00:55:30,860 --> 00:55:33,400 Voisimme tehdä melko nopeasti. 608 00:55:36,960 --> 00:55:41,480 Emme aio käyttää argv. Toivotaan vain puhaltaa kautta. 609 00:55:41,480 --> 00:55:45,730 Soita se ainutlaatuinen, kirjoittaa ohjelma. 610 00:55:45,730 --> 00:55:49,400 Voit olettaa, että panos sisältää yksi sana per rivi. 611 00:55:49,400 --> 00:55:52,020 Oikeastaan ​​argv on melko triviaali käyttää. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 Ensimmäinen asia ensin haluamme tarkistaa, jos olemme siirtyneet 1 komentorivin argumentti. 614 00:56:13,750 --> 00:56:20,900 Aivan kuten odottaa argc ja argv C, meillä on vielä nuo PHP. 615 00:56:20,900 --> 00:56:33,900 Joten jos ($ argc! == 2) niin en aio käsitellä tulostamalla viestin tai mitään. 616 00:56:33,900 --> 00:56:37,340 Otan vain poistua, virhekoodi 1. 617 00:56:37,340 --> 00:56:41,340 Voisin myös palata 1. 618 00:56:41,340 --> 00:56:53,180 Harvoin PHP olet tällä tilassa missä me olemme - 619 00:56:53,180 --> 00:56:57,820 Yleensä olet toimintoa kutsutaan funktion kutsutaan funktion kutsutaan funktion. 620 00:56:57,820 --> 00:57:02,070 Ja jos jokin menee vikaan ja haluat vain lopettaa kaiken kokonaan, 621 00:57:02,070 --> 00:57:05,680 exit vain päättyy ohjelman. 622 00:57:05,680 --> 00:57:08,160 Tämä on olemassa myös C 623 00:57:08,160 --> 00:57:10,700 Jos olet toiminto toiminto toiminto toiminto 624 00:57:10,700 --> 00:57:17,540 ja haluat vain tappaa ohjelmaa, voit soittaa liittymästä ja se vain poistuu. 625 00:57:17,540 --> 00:57:23,120 Mutta PHP on vielä harvinaista, että olemme tällä huipputasolla. 626 00:57:23,120 --> 00:57:26,090 Yleensä olemme sisällä jonkinlainen toiminto, joten kutsumme exit 627 00:57:26,090 --> 00:57:29,650 niin että meidän ei tarvitse palata jopa 1 asia joka tajuaa siellä virhe 628 00:57:29,650 --> 00:57:32,270 jotta palauttaa ylös, jos se tunnistaa oli virhe. 629 00:57:32,270 --> 00:57:35,270 Emme halua käsitellä että, niin poistu (1); 630 00:57:35,270 --> 00:57:38,240 Return (1); tässä tapauksessa olisi vastaavia. 631 00:57:38,240 --> 00:57:44,000 >> Sitten mitä haluamme avata haluamme fopen. 632 00:57:44,000 --> 00:57:46,760 Argumentit ovat menossa katsomaan melko samanlaisia. 633 00:57:46,760 --> 00:57:51,600 Haluamme fopen ($ argv [1], ja haluamme avata lukemista varten. 634 00:57:51,600 --> 00:57:55,720 Joka palauttaa resurssi, joka aiomme soittaa f.. 635 00:57:55,720 --> 00:58:02,180 Tämä näyttää melko samanlainen kuin miten C ei se kuitenkaan meidän ei tarvitse sanoa FILE *. 636 00:58:02,180 --> 00:58:06,170 Sen sijaan me vain sanoa $ f. Okei. 637 00:58:06,170 --> 00:58:17,190 Oikeastaan, mielestäni tämä jopa antaa meille vihjeen siitä PHP funktio kutsutaan tiedoston. PHP File. 638 00:58:17,190 --> 00:58:23,990 Mitä tämä tulee tehdä, on lukea koko tiedoston array. 639 00:58:23,990 --> 00:58:29,770 Sinun ei edes tarvitse fopen sitä. Se tulee tehdä sen puolestasi. 640 00:58:37,450 --> 00:58:43,700 Joten $ rivit = file ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 Nyt kaikki rivit tiedoston on linjat. Nyt haluamme lajitella rivit. 642 00:58:49,680 --> 00:58:52,180 Miten voimme lajitella rivit? 643 00:58:52,180 --> 00:58:54,920 Me lajitella rivit. 644 00:58:54,920 --> 00:58:58,080 Ja nyt voimme tulostaa ne tai jotain. 645 00:58:58,080 --> 00:59:05,580 Todennäköisesti helpoin tapa on foreach ($ rivit kuin $ line) echo $ rivi; 646 00:59:05,580 --> 00:59:10,960 [Opiskelija] Eikö me edes ylittää linjat viittaamalla jotain tulee lajitella? 647 00:59:10,960 --> 00:59:28,850 Tässä on tavallaan se määritellään funktio lajittele (& $ array). 648 00:59:28,850 --> 00:59:32,650 Kun soitat toiminnon et läpäise sitä viittaamalla. 649 00:59:32,650 --> 00:59:36,900 Se toiminto, joka määrittelee sen kun sitä viitteenä. 650 00:59:36,900 --> 00:59:40,900 Tämä on oikeastaan ​​juuri sitä, mitä meni pieleen 651 00:59:40,900 --> 00:59:46,220 kun panemme kaiken meidän palvelimia kun menimme 5,3-5.4. 652 00:59:46,220 --> 00:59:53,800 Saakka 5.4, tämä oli täysin järkevä. 653 00:59:53,800 --> 00:59:58,740 Toiminto ei aio tehdä sitä referenssinä, mutta voit välittää sitä referenssinä 654 00:59:58,740 --> 01:00:02,860 joten jos toiminto ei tapahdu muuttamaan, se on silti muutettu. 655 01:00:02,860 --> 01:00:05,850 Vuodesta 5,4, sinun ei pitäisi tehdä tätä. 656 01:00:05,850 --> 01:00:11,740 Joten nyt ainoa tapa ohitat viittaus on jos funktio nimenomaan tekee sen. 657 01:00:11,740 --> 01:00:19,840 Jos et halua sitä muuttaa sitä, sinun ei tarvitse tehdä $ kopio = $ linjat ja Pass kopio. 658 01:00:19,840 --> 01:00:24,820 Joten nyt linjat säilyvät ja kopioi muuttuu. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. Olen ehkä sekaisin jotain ylös. 660 01:00:31,460 --> 01:00:33,190 Odottamaton "lajitella". 661 01:00:38,320 --> 01:00:43,850 Siellä tulee olemaan jotain, joka tekee tämän meille. 662 01:00:43,850 --> 01:00:45,820 Se ei ole edes olemassa. 663 01:00:45,820 --> 01:00:52,140 Huomaa kun olet lukenut käsikirjan, ensimmäinen argumentti odotetaan olevan taulukon 664 01:00:52,140 --> 01:00:56,490 ja se otetaan tähän viitteenä. 665 01:00:58,160 --> 01:01:03,540 Miksi tämä valittaa minulle? Koska minulla on tämä toiminto lajitella vielä täällä, että en halua. 666 01:01:03,540 --> 01:01:09,210 Okei, php.unique.php. En anna sitä väitettä, koska minulla ei ole tiedostoa. 667 01:01:09,210 --> 01:01:13,560 Se php.unique.php päälle test.php. 668 01:01:13,560 --> 01:01:19,080 Tässä on test.php kaikki tulostuvat kiva lajiteltu järjestykseen. 669 01:01:19,080 --> 01:01:24,600 Huomaa, että lajiteltu järjestys on eräänlainen outo koodia tiedoston 670 01:01:24,600 --> 01:01:27,460 koska kaikki meidän tyhjät rivit ovat menossa tulla ensin 671 01:01:27,460 --> 01:01:30,190 Sitten on tulossa meidän kaikkien 1 tason painumia 672 01:01:30,190 --> 01:01:33,360 sitten tulevat kaikki meidän ei painumia. 673 01:01:33,360 --> 01:01:38,620 Joo. >> [Opiskelija] Joten lähdekoodia ei ollut ohi viite? 674 01:01:38,620 --> 01:01:42,240 On, että yleensä ohi arvo? 675 01:01:42,240 --> 01:01:50,240 [Bowden] Kun soitat funktio, se ei koskaan ratkaisee onko se ohi viitteenä. 676 01:01:50,240 --> 01:01:53,960 Se on funktion määritelmää, joka määrittää, onko se ohi viitteenä. 677 01:01:53,960 --> 01:01:59,450 Ja tarkastellaan funktion määritelmää lajitella tai vain katsomalla tätä, 678 01:01:59,450 --> 01:02:02,820 se vie väitettä viittaamalla. 679 01:02:02,820 --> 01:02:07,160 Joten riippumatta siitä haluatko sen ottaa sen suhteessa, se vie sen viittaamalla. 680 01:02:07,160 --> 01:02:10,200 Se muuttaa array paikalleen. 681 01:02:10,200 --> 01:02:17,400 Tämä ei vain saa. Et saa tehdä tätä. >> [Opiskelija] Ai, okei. 682 01:02:17,400 --> 01:02:22,410 [Bowden] Tämä lajittelu vie linjat viitteenä ja muokata sitä. 683 01:02:22,410 --> 01:02:26,850 Ja vielä, jos et halua sitä tehdä, että voit tehdä kopion lajitella. 684 01:02:26,850 --> 01:02:35,850 Tässäkin tapauksessa kopiointi ei ole oikeastaan ​​kopio riviä. 685 01:02:35,850 --> 01:02:40,620 Se vain osoittaa samaa, kunnes se saa muuttaa, 686 01:02:40,620 --> 01:02:44,430 jossa se ensimmäisen menossa muutettu lajittelutoiminto, 687 01:02:44,430 --> 01:02:50,940 missä, koska se on kopio-on-kirjoittaa, nyt kappaleen jäljennöksen aiotaan tehdä. 688 01:02:57,500 --> 01:03:04,250 Voit tehdä tämän myös. Se on toinen paikka, näet et-. 689 01:03:04,250 --> 01:03:07,190 Näet sen foreach silmukoita, näet sen funktio ilmoituksia, 690 01:03:07,190 --> 01:03:10,040 ja näet sen kun vain määrittämällä muuttujat. 691 01:03:10,040 --> 01:03:12,350 Nyt olemme saaneet aikaan mitään tekemällä näin 692 01:03:12,350 --> 01:03:15,600 koska kopiointi ja linjat ovat kirjaimellisesti sama asia. 693 01:03:15,600 --> 01:03:19,940 Voit käyttää viivoja ja kopioi synonyymeina. 694 01:03:19,940 --> 01:03:25,430 Voit tehdä unset ($ kopio) ja että ei unset linjat, 695 01:03:25,430 --> 01:03:29,120 juuri menetät viitaten sama asia. 696 01:03:29,120 --> 01:03:33,440 Niin tämä kohta, nyt linjat on ainoa tapa, jolla voit käyttää riviä. 697 01:03:36,450 --> 01:03:38,770 >> Kysymyksiä? 698 01:03:41,000 --> 01:03:42,460 Joo. 699 01:03:42,460 --> 01:03:45,880 [Opiskelija] Täysin off topic, mutta sinun ei tarvitse sulkea PHP - >> Et. 700 01:03:45,880 --> 01:03:47,730 Okei. 701 01:03:47,730 --> 01:03:53,790 [Bowden] Menisin niin pitkälle kuin sanoa se on huono käytäntö sulkea niitä. 702 01:03:53,790 --> 01:03:57,580 Se on luultavasti liioittelua, erityisesti käsikirjoituksen, 703 01:03:57,580 --> 01:04:03,740 mutta katsotaanpa mitä tapahtuu, jos teen näin. 704 01:04:03,740 --> 01:04:08,890 Se ei tehnyt mitään. Mitä jos halusin - [huokaa] 705 01:04:13,870 --> 01:04:16,960 Minun täytyy kulkea argumentti. 706 01:04:19,000 --> 01:04:22,050 Ampua. Kutsuin sitä väärin. 707 01:04:24,340 --> 01:04:28,310 Joten php.unique.php kanssa argumentti. 708 01:04:28,310 --> 01:04:30,980 Nyt en edes tarvitse tätä. 709 01:04:34,520 --> 01:04:37,740 Minä sitä tule pätevä argumentti. 710 01:04:37,740 --> 01:04:42,050 Tämä painettu mitä se tulostus. 711 01:04:45,260 --> 01:04:50,080 Olen tulostamista kopiointi ja kopio ei ole olemassa. Joten linjat. 712 01:04:53,650 --> 01:04:58,270 Se tulostaa kaiken, ja sitten huomaa kaikki tämä roska tänne, 713 01:04:58,270 --> 01:05:06,690 koska PHP mitään sellaista ulkopuolella PHP tageja 714 01:05:06,690 --> 01:05:09,520 on juuri menossa tulostettavaksi kirjaimellisesti. 715 01:05:09,520 --> 01:05:18,050 Siksi HTML, se on niin mukavaa, että voin tehdä div blaa, blaa, blaa luokka tai mitä tahansa, 716 01:05:18,050 --> 01:05:25,140 blaa, blaa, blaa ja sitten tehdä joitakin PHP ja tee loppu div. 717 01:05:25,140 --> 01:05:36,460 Ja nyt tulostamiseksi saan mukavan div ylös, kaiken PHP painettu, div alareunassa. 718 01:05:36,460 --> 01:05:43,510 Tuhoisat kun jotain tällaista tapahtuu, mikä on melko yleistä, 719 01:05:43,510 --> 01:05:47,930 vain stray rivinvaihto alareunassa tiedoston. 720 01:05:47,930 --> 01:05:50,940 Et halua ajatella sitä olisi, että iso juttu 721 01:05:50,940 --> 01:05:58,660 kunnes pidätte siitä, että selaimet - 722 01:05:58,660 --> 01:06:03,880 >> Miten ohjaa työn tai periaatteessa mitään otsikoita työtä, 723 01:06:03,880 --> 01:06:07,980 kun teet yhteytesi verkkosivuilla ja se lähettää takaisin kaikki nämä otsikot ja asiat 724 01:06:07,980 --> 01:06:12,020 kuten vaste 200 tai vaste uudelleenohjata tai mitä tahansa, 725 01:06:12,020 --> 01:06:18,230 otsikot ovat voimassa ainoastaan ​​ensimmäisen tavun dataa lähetetään. 726 01:06:18,230 --> 01:06:23,140 Voit ohjata tuhansia kertoja, mutta heti kun ensimmäisen tavun data lähetetään 727 01:06:23,140 --> 01:06:26,120 et pitäisi suunnata uudelleen. 728 01:06:26,120 --> 01:06:31,860 >> Jos sinulla on eksynyt rivinvaihto alareunassa tiedosto 729 01:06:31,860 --> 01:06:37,260 ja sanotaan, että käytät tätä toimintoa, ja sitten haluat - 730 01:06:41,580 --> 01:06:52,870 Sanotaan se toinen tiedosto, joka on index.php ja sinä require_once jotain - 731 01:06:52,870 --> 01:06:56,920 En voi ajatella hyvä esimerkki siitä. 732 01:06:56,920 --> 01:07:04,740 Asia tapahtuu, kun tämä alalaidassa saa kaikui. 733 01:07:04,740 --> 01:07:08,660 Et halua mitään ole toistaneet vielä. 734 01:07:10,820 --> 01:07:15,700 Vaikka et aio mistään saada vastakaikua, jotain ei saada vastakaikua 735 01:07:15,700 --> 01:07:17,990 ja niin nyt et pitäisi lähettää lisää otsikoita 736 01:07:17,990 --> 01:07:20,030 ja aiot saada valituksia. 737 01:07:22,170 --> 01:07:24,420 Et vain tarvitse niitä loppumerkinnät. 738 01:07:24,420 --> 01:07:27,420 Jos aiot tehdä jotain HTML - 739 01:07:27,420 --> 01:07:30,490 ja se on täysin järkevää tehdä tänne div riippumatta 740 01:07:30,490 --> 01:07:39,450 ja sitten tässä vaiheessa voit tai et voi sisällyttää niitä. 741 01:07:39,450 --> 01:07:41,590 Sillä ei ole niin väliä. 742 01:07:41,590 --> 01:07:45,450 Mutta PHP skriptejä se on harvinaista sulje se. 743 01:07:45,450 --> 01:07:50,400 Kun kaikki on PHP, aivan kaiken, 744 01:07:50,400 --> 01:07:55,460 sinun ei todellakaan tarvitse sulkea / sinun ei pitäisi sulkea sitä. 745 01:08:02,030 --> 01:08:05,720 >> Käsitteleminen jouset on paljon mukavampi kuin C 746 01:08:05,720 --> 01:08:09,470 PHP voit määrittää merkkijonon yhden tai lainausmerkkeihin. 747 01:08:09,470 --> 01:08:12,820 Yhden lainausmerkkejä et voi käyttää "escape" sekvenssejä. 748 01:08:12,820 --> 01:08:17,640 Jatkuvasti paeta, blaa, blaa, blaa. 749 01:08:19,920 --> 01:08:24,010 Joten printf on hyvin harvinaista PHP. 750 01:08:24,010 --> 01:08:32,290 Luulen Haluaisin käyttää printf jos halusin tehdä sellainen asia - in PSET 5 käytit sprintf tai jotain. 751 01:08:32,290 --> 01:08:36,060 Mutta haluat tehdä 001.jpg ja 002.jpg. 752 01:08:36,060 --> 01:08:40,300 Niin että sellainen asia, jossa olen todella haluavat muotoilla tekstiä Haluaisin käyttää printf. 753 01:08:40,300 --> 01:08:44,689 Mutta muuten olisin vain käyttää string ketjuttamista. 754 01:08:44,689 --> 01:08:47,000 En koskaan käytä printf. 755 01:08:49,229 --> 01:09:00,170 Olemme juuri erottaa yksityiskohtia välillä puolilainausmerkkejä ja lainausmerkkeihin. 756 01:09:00,170 --> 01:09:07,490 Suurin ero on se, että yksittäinen lainausmerkit, se tulostetaan kirjaimellisesti. 757 01:09:07,490 --> 01:09:15,390 Ei ole char tietotyyppi PHP, toisin kuin C, joten tämä on sama kuin tämän. 758 01:09:15,390 --> 01:09:17,970 He molemmat jouset. 759 01:09:17,970 --> 01:09:29,180 Ja kiva juttu tarjouksen jousille on voisin sanoa "Hello world!" blaa, blaa, blaa, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 Mitä tapahtuu, kun tulostetaan tämä on se tulostaa sen kirjaimellisesti. 762 01:09:38,260 --> 01:09:40,680 Mennään eroon kaikista meidän juttuja. 763 01:09:40,680 --> 01:09:44,700 Joten echo $ str1; 764 01:09:48,569 --> 01:09:56,570 Se kirjaimellisesti painettu kaikki nuo asiat: dollarin merkkejä, 765 01:09:56,570 --> 01:09:58,770 kenoviiva n, jonka luulisi olisi rivinvaihtoja - 766 01:09:58,770 --> 01:10:01,500 kaikki nuo asiat se tulostuu kirjaimellisesti. 767 01:10:01,500 --> 01:10:05,650 Ainoa asia, sinun täytyy paeta ovat puolilainausmerkkejä 768 01:10:05,650 --> 01:10:09,470 koska muuten se olisi mielestäni se sulkee puolilainausmerkkejä. 769 01:10:09,470 --> 01:10:15,050 Lainausmerkkeihin, täysin erilainen. 770 01:10:20,300 --> 01:10:25,870 Olemme jo nähneet syntaksin korostus on cluing meitä mitä on aikeissa mennä pahasti pieleen. 771 01:10:25,870 --> 01:10:36,190 php.unique. Määrittelemätön muuttuja: wooo koska tämä tulkitaan muuttuja nimeltä wooo. 772 01:10:36,190 --> 01:10:42,400 Lainausmerkit voit lisätä muuttujia - 773 01:10:42,400 --> 01:10:52,730 Sanotaan $ name = "Rob"; 774 01:10:52,730 --> 01:10:58,020 Joten echo "Hei, nimeni on $ nimi!"; 775 01:10:58,020 --> 01:11:09,260 Se tunnistaa tämän muuttujan. 776 01:11:09,260 --> 01:11:21,210 Kun juoksen, että - ja aion lisätä rivinvaihto - Hei, nimeni on Rob! ja Moikka maailma! 777 01:11:21,210 --> 01:11:24,910 Tämä johtuu siitä, että en ole koskaan irrottaa painamisen wooo edellä. 778 01:11:24,910 --> 01:11:30,020 On 1 askel voit tehdä. 779 01:11:30,020 --> 01:11:39,250 $ Array = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 Mitä jos haluan tulostaa ensimmäisen indeksi array? 781 01:11:43,270 --> 01:11:45,150 Et $ array [0]. 782 01:11:45,150 --> 01:11:49,280 Syntaksin korostus on vihje. Mitä tämä aikoo tehdä? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 Hei, nimeni on 1! joka ei ole sitä mitä halusin. 785 01:11:59,860 --> 01:12:05,050 Syntaksin korostus valehteli minulle. 786 01:12:05,050 --> 01:12:13,020 Kokeillaan "" -> 1, 'b' -> 2. 787 01:12:18,450 --> 01:12:21,440 Niin olisin kirjoittaa sitä. 788 01:12:26,350 --> 01:12:32,160 Odottamaton heittomerkki (T_ENCAPSED blaa, blaa, blaa, blaa, blaa). 789 01:12:32,160 --> 01:12:41,780 Ajatuksena on, että se ei tunnista tätä matriisin osan. 790 01:12:41,780 --> 01:12:46,620 Se ei tunnista tätä array indeksoitu kirjeitse. 791 01:12:46,620 --> 01:12:49,870 Haluat tehdä sulkumerkkien, 792 01:12:49,870 --> 01:12:54,730 ja nyt mitä on tässä kihara ahdin interpoloidaan, 793 01:12:54,730 --> 01:13:00,340 joka on sana käytämme maagisesti Sijoittamalla nämä muuttujat oikeissa paikoissa. 794 01:13:00,340 --> 01:13:04,280 Nyt teet tämän, php.unique ja Hei, nimeni on 1! odotetusti 795 01:13:04,280 --> 01:13:07,720 tai Hei, nimeni on Rob! 796 01:13:14,110 --> 01:13:23,130 Yksi asia, joka on tavallaan mukavaa noin puolilainausmerkkejä on, että - 797 01:13:23,130 --> 01:13:28,480 On joitakin kustannuksia interpoloivaa. 798 01:13:30,520 --> 01:13:35,100 Jos käytät lainausmerkkejä, tulkki on mennä yli tämän merkkijono, 799 01:13:35,100 --> 01:13:41,500 Varmista, että "Oh, tässä on vaihteleva. Nyt minun täytyy mennä hakemaan muuttujan ja työnnä se tänne." 800 01:13:41,500 --> 01:13:48,930 Vaikka et käytä mitään muuttujia, 801 01:13:48,930 --> 01:13:52,220 mitään sisällä näitä lainausmerkit on interpoloidaan 802 01:13:52,220 --> 01:13:56,800 mutta se on silti hitaampi, koska se tarvitsee mennä yli lainausmerkit 803 01:13:56,800 --> 01:14:00,130 etsivät asioita, jotka on interpoloitava. 804 01:14:00,130 --> 01:14:05,360 Joten lainausmerkkejä voi olla hieman nopeampi, jos mitään ei tarvitse interpoloida, 805 01:14:05,360 --> 01:14:15,650 ja minulla on tapana edes käyttää yhden lainausmerkkejä, "Hei, nimeni on". $ Array ['a'] tapauksessa. 806 01:14:15,650 --> 01:14:20,430 Tämä tulee olemaan vastaavia mitä meillä oli ennen. 807 01:14:24,840 --> 01:14:28,440 Mutta se mieltymyskysymys. 808 01:14:28,440 --> 01:14:34,750 Jos käytät PHP, et todennäköisesti välitä nopeus ero. 809 01:14:34,750 --> 01:14:39,480 Ei ole riittävästi perustellut niitä aluksi. 810 01:14:39,480 --> 01:14:43,030 >> Lopullista kysyttävää? 811 01:14:47,430 --> 01:14:51,710 >> Emme oikeastaan ​​edes läpi kaikki se, mutta tämä aine oli tylsä. 812 01:14:51,710 --> 01:14:59,080 Viimeinen asia, joka on tavallaan mukavaa PHP on, kun olet tekemisissä HTML, 813 01:14:59,080 --> 01:15:06,450 voit käyttää sitä vähän, joten mukava oikotie syntaksi tulostaa muuttujan. 814 01:15:32,400 --> 01:15:36,730 Vaarantamatta PHP täällä, tätä kutsutaan lyhyt tageja. 815 01:15:36,730 --> 01:15:44,330 Virallisesti PHP 5.4, tämä on vanhentunut. 816 01:15:44,330 --> 01:15:48,640 On suositeltavaa laittaa php. 817 01:15:48,640 --> 01:15:55,770 Tämä on edelleen tuettu, joten lyhyet tunnisteet kanssa 01:16:02,480 Se on oletusarvoisesti tuettu, joten voit käyttää näitä kuin haluat, ja ne ovat melko kätevä. 819 01:16:02,480 --> 01:16:05,700 >> Kysyttävää? 820 01:16:07,780 --> 01:16:09,270 Selvä. 821 01:16:10,840 --> 01:16:13,800 >> Pysy tyylikäs, San Diego. 822 01:16:13,800 --> 01:16:16,070 [Naurahtaa] 823 01:16:18,620 --> 01:16:22,660 Hei. [Nauraa] 824 01:16:24,350 --> 01:16:28,470 [Aplodit] [nauraa] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]