DOUG LLOYD: Belə ki, biz C iş bir çox işlər, və C həqiqətən sərin dil sizə verir, çünki həqiqətən dalış etmək imkanı Sizin proqramları aşağı səviyyədə. Biz şeyə almaq manipulyasiya həqiqətən dəqiqə yaddaş fərdi bytes. Həqiqətən göstəricilər Recall bizə rahatlıq verir. Amma biz həmişə lazımdır ətraflı gözəl taxıl səviyyəli Bizim proqramlarında? Yəqin ki, deyil, sağ? Və biz olacaq, əgər olan arasında ticarət-off həqiqətən, həqiqətən, nə edə dəqiqə şey və həqiqətən, həqiqətən, düşünürük yoxdur böyük şeylər haqqında, biz həyata yoxdur Bu həqiqətən böyük fikir əgər onlar artıq bizim üçün inşa edirik ümumiyyətlə böyük tikinti üçün proqramları və ya böyük layihələr, biz yəqin ki, tərəfində səhv düşmək olacaq daha dil stuff tikilmiş bizim üçün yerinə olan aşağı səviyyəli stuff. PHP həqiqətən gəlir harada ki, var. İndi səbəblərindən biri biz CS50 PHP öyrətmək Bu ağır ilham ki, C. Və əslində, mənim fikrimcə, iki həqiqətən var əcdad dillər ki, hazırda çox rast gəlinir. C və lisp. Onlar əcdad languages ​​istəyirik hər müasir proqramlaşdırma çünki inkişaf etmişdir dil O vaxtdan bəri ilham edilir bir və ya digər syntactically tərəfindən. PHP syntactically çox oxşardır C, sxem kimi dillərdə isə, misal üçün, hansı Siz eşitmişəm bilər ağır bir dillə ilham edilir köhnə dilidir adlı lisp. Biz öyrətmək səbəbdən So CS50 PHP ki, əsaslı olaraq C bilerek Bu nöqtədə nə kimi, verir aldığınız PHP, daha yüksək səviyyədə şeyə imkanı C nə çox deyil ki, bir sədd çox, Əgər siz artıq var, çünki sintaksis əsas fikir. C demək olar ki, ətrafında olub Bu nöqtədə 45 il. PHP 20 il ətrafında olmuşdur. Və 25 il , proqramçılar arasında müəyyən ki, onlar qədər ki, daha doğrusu, yüksək səviyyədə bacarıqları var və səhvlər və mübarizə arasında 20 il PHP və digər müasir dildə gətirib çıxardı. Bir PHP-nin böyük bir seçimdir proqram dili üçün allow-- ki siz that-- proqram ki şeyi etmək lazımdır C həqiqətən mürəkkəbdir. Belə ki, məsələn, iş C strings çünki çox mürəkkəbdir Bildiyimiz kimi, C strings həqiqətən simvol yalnız seriallarda var. Bu daxili data type deyil. Və ya bəlkə də daha əsaslı, biz hətta C əhatə etməyib bir şey, Siz nə etmək lazımdır, əgər nə bəzi kompüter şəbəkə? Oldu? C bunu etmək imkanı var, amma o qədər deyil gizli və həqiqətən nə qədər çətin. Əgər gözəl ola bilməz dil daxili, asan yol idi şəbəkə həyata keçirilməsi üçün? Və PHP edir ki bir dil, və ya, olduqca bir az daha asanlaşdırır. Dediyim kimi, PHP çox ağır ilham edir C. syntax çox oxşardır. Və belə ki, inşallah etməlidir bir digər keçid bir çox bir az daha yumşaq digər dillərdə ola bilər. PHP yazılı başlamaq üçün, yalnız açmaq Php fayl uzantısı ilə bir fayl. Texniki bu deyil həqiqətən tələb lakin sintaksis kimi şeylər istəyirsinizsə növü, belə ki, IDE vurğulayaraq adları, və ya dəyişən adları, funksiyaları, Siz dil açar sözlər bilirik bir vurgulanır xüsusi rəng, ümumiyyətlə ilə faylları adını istəyirəm xüsusi fayl uzantısı. Beləliklə, biz bir Php ilə fayl adlı etdik uzadılması, lakin sonra da PHP ilə, ki, yazmaq bütün PHP kodu fayl bu PHP əlavə edilməlidir görürük sınırlayıcıları burada ekranda. Angle bracket? Php başlamaq üçün. Sonra biz PHP bütün yazmaq biz arasında istəyirik kodu. Daha sonra ? bucaq bracket yaxın. Bu, sonra etməsəniz nə baş verəcək? Bu qəza etmək niyyətində deyil. Bu niyyətində deyil Həqiqətən proqram məhv. Amma bu var niyyətində deyil Biz istəyirik təsiri. Baş neler, həqiqətən, var biz cəhd və bu proqram çalıştırdığınızda ki, hər şey olmayan foydalanish arasında birə çap olacaq. Bu niyyətində deyil həqiqətən kodu icra, Bu olacaq yalnız birə onu çap. İndi niyə belədir? Belə ki, C məlumdur nə bir tərtib dil kimi. Siz yəqin ki, ilə tanış edirik Sizin proqramları edilməsi addım, c faylları və h faylları dönüş etmək ilə bir yürütülebilir daxil, Xüsusilə istifadə Bizim compiler kimi cingilti. PHP, baxmayaraq ki, deyil bu ekvivalent var. PHP bir deyirlər nə şərh dil. Və nə deməkdir? Bəli, biz çevirmək yoxdur deməkdir adet sıfır və olanları üçün mənbə kodu əvvəlcədən. Əksinə, bir proqram var, həmçinin adlanır PHP və anlayır PHP, sort Tez edə bilərsiniz. Bu, həqiqətən, tam dəqiq deyil lakin bu olduqca yaxşı analogiya var bir neler. O tərcümə var Tez zeroes və olanları. Və əgər o bilmir necə bir şey emal, o bilmir, əgər necə proses PHP, siz yəqin ki, sağ, orada mətn qoymaq istəyirdi? Siz yəqin ki, kodu qoymaq istəyirdi Orada o, php arasında deyil, hətta PHP sınırlayıcıları. Ancaq belə ki, gedən deyil sizin üçün silmək üçün, yalnız əsasən imtina edəcək. Belə ki, çap olacaq Bu ekran həyata. Bir pis kimi bu görünür şey, lakin faktiki olaraq bu həqiqətən olacaq yaxşı bir şey, biz lazımdır kimi Biz haqqında danışmaq zaman görmək PHP web inkişaf, Bu deməkdir ki, çünki biz PHP və HTML serpmek. Biz onlara birlikdə istifadə edə bilərsiniz daha dinamik web səhifə yaratmaq. Amma ki, daha çox PHP web inkişaf video. Belə ki, PHP syntax nədir? Yəni bu video haqqında nə var. Bu barədə danışmaq edək. Belə ki, dəyişənlərin həyata başlamaq. PHP dəyişənlərin mövcuddur. Yalnız böyük iki var C. fərqlər ilk var ki heç bir növü belirteci. Biz int demək yoxdur char, float, bütün stuff. Biz artıq bunu yoxdur. PHP müasir dilidir. Bu olduğunuz anlamaq bilər və ya ən yaxşı etmək üçün çalışırıq Siz nə etmək çalışdığınız nə kimi danışarlar. Belə ki, olduqca gözəl. başqa şey bütün dəyişən ki, adları dollar işarəsi ilə başlamaq lazımdır. Bu istifadə almaq üçün yalnız bir şey var. Çünki bir az qəribə PHP başa düşmək olar ki, bu nə dəyişən və nə deyil. Belə ki, hər dəyişən adı dollar işarəsi ilə başlayır. Belə ki, C biz bir şey deyə bilər bu kimi int x = 54. Biz PHP artıq bunu yoxdur. Biz yalnız x = 54 $ demək olar. Və biz C, misal üçün, demək olar, biz CS50 h funt daxil olsaydı header file, biz demək olar string söz = "Bu CS50 edir." Biz baxmayaraq, PHP bunu yoxdur. Biz yalnız $ söz demək olar = "Bu CS50 edir." Və əslində, simli indi PHP daxili data type, daha doğrusu PHP anlayır simli nə. Bu bir sıra ayrı var simvol bu C. kimi Bütün sevdiyiniz C şərti hesabatları hələ istifadə etmək üçün mövcuddur. Belə ki, orada heç bir böyük keçid. Biz ola bilər demək bilər bu kimi hesabatları əgər. $ y 43, və ya $ z = 15. Belə ki, olduqca sadə var. Biz əgər başqa ola bilər. Biz əgər başqa, əgər ola bilər. Və bir şey hiss pretty burada gözəl və bu o biri sort C, bildiriş qarşı PHP üstünlükləri nə funksiyası biz burada istifadə etdiyiniz? Biz müqayisə etmək == istifadə etdiyiniz dəyişən, $ name, simli. Biz sağ, C bunu bilməz? Biz adlı bir funksiyası istifadə etmək idi StrComp ya StrEndComp və ya hər hansı əlaqəli əmiuşağı. Və belə ki, artıq biz bu üstünlükləri görürük. Biz bir şey yoxdur kimi silly və ya bəlkə unintuitive adlı funksiyası zəng kimi StrComp Mən yalnız test etmək istəyirsinizsə, olub dəyəri simli bərabərdir. Mən yalnız bərabərdir istifadə edə bilər Mən başqa bir şey ola bilər. Belə ki, bir üstünlük var. Bəzən yolu ilə, siz ola bilər elseif başqa kimi bir söz görmək. Və həmçinin PHP OK. Belə ki, bəzən ki, görə bilərsiniz. Bu typo deyil. PHP həqiqətən elseif anlayır. Bilmirəm niyə ki, həyata keçirilməsinə qərar, lakin bir çox dəfə gördüm kimi günə qədər bizim videoları ərzində, biz proqramçılar, əgər sevgi biz tez şeyi edə bilərsiniz belə ki, yer kurtulmanın yəqin böyük bir üstünlükdür. Belə ki, əgər elseif var. Biz də ternary operator var, geri sual işarəsi colon, başqa, əgər, həqiqətən, qısa forması və ya şərti şax-budaq. Və yəqin ki, bu da, nə biz burada nə çalışdığınız dəyişən təyin olunur Doğru və ya yalan ya $ məktub, $ var asılı olaraq əlifba karakter. Belə ki, bu isalpha olduqca oxşar biz C. ilə tanış edirik ki, Bu PHP ekvivalenti sortudur. funksiyası yəqin deyil ctype_alpha adlı, lakin biz PHP bunu necə. Belə ki, bütün bu halda, olmağa gedir $ Var bir məktub, $ məktub doğrudur. $ Var məktub deyilsə, $ Məktub yalan. Biz də hələ keçid hesabatları var. Biz C kimi də xatırlayıram. Orada çox üst ki, biz bunu necə get int və ya string almaq kimi bir şey. Belə ki, PHP inşa ki, var. Biz artıq CS50 kitabxana ehtiyac yoxdur. Biz yalnız funksiyası readline istifadə edə bilərsiniz. Hansı ki, nə olacaq çap mesajı həyata "Sizin dövlət, , xahiş edirik "və sonra tez yanıb-sönən giriş üçün istifadəçi üçün gözləyir bəzi məlumat. İndi nə başqa qeyd biz keçid ilə edə bilərsiniz. Siz əvvəl istifadə varsa, ki, keçid geri bilər integers üçün olduqca çox məhduddur və simvol, lakin indi biz strings istifadə edə bilərsiniz. Və əslində, switch bəyanat PHP kifayət qədər bir az daha çevik C. onun cousin çox Ilmə. Yalnız conditionals kimi, bütün köhnə Seçilmişlərə hələ də var. Biz saymaq isə loops var 1-dən bu halda 100. Biz loops isə nə var ki, 1-dən 100 saymaq və biz loops üçün ki, 1-dən 100 saymaq. Belə ki, orada heç bir böyük sıçrayış. sintaksis olduqca Eyni dəqiq çox, indi biz istifadə etdiyiniz istisna olmaqla dollar işarəsi dəyişən yerinə tam dəyişənlərin elan və ya Bizim counters üçün kimi bir şey. Hər şeyi bir almaq burada baxmayaraq ki, C-dən çox daha yaxşı. Diziler. Belə ki, biz geri zaman məqsədilə C söhbət Bizə inkişaf və shrink üçün məlumat dəstləri, biz default düzmək üçün lazım bir bağlı siyahı bu fikir, C Diziler ölçüsü müəyyən edilmişdir, çünki. Biz onlara shrink bilmədi. Biz onları inkişaf bilmədi. Biz yaddaş təkrar bölüşdürə idi və bütün bu dəlilik etmək ya bağlı siyahıları, istifadə edən bir qədər daha çox yer tutur. Lakin PHP, diziler var Artıq ölçüsü sabit deyil. Onlar inkişaf edə bilər və onlar shrink. Belə ki, yenə, bu 20 il mövcud C ilk azad arasında və ilk azad PHP, biz, bilirsiniz, qərara aldı ki, bu, həqiqətən böyük olacaq biz bunu edə bilər, əgər. Və belə ki, biz bu həyata. Belə ki, PHP Diziler sabit deyil ölçüsü və PHP deyil, çünki, həqiqətən, proqramçı Ön üzləşdiyi var növləri anlayışlar, biz data növ mix edə bilərsiniz Bizim seriallarda, çox. Beləliklə, biz hətta bütün istifadə etmək yoxdur, integers və ya bütün üzən bal, biz bütün bir mix ola bilər bir sıra müxtəlif növ. Bir sıra edir elan olduqca sadə. Bu, yalnız hər hansı digər dəyişən kimi. $ Nums = array (1, 2, 3, 4), array funksiyası olan ki, PHP daxil ki, Sizin üçün bir sıra yaradır. Bu dörd dəyərlərin bir sıra yaradır, Bu halda nömrələri $ nums çağırıb. Və bunu bir çox yol var. Və biz olacaq Bu PHP bir çox görürük. PHP bir çox müxtəlif tərəfindən hazırlanmışdır insanlar artır və artır və artır və. Adətən var yalnız iki və ya PHP bir şey üçün üç yol, adətən 10 və ya 20 kimi var. Burada yalnız bir ümumi var bir sıra elan yol. $ Nums = kvadrat mötərizə 1, 2, 3, 4. Belə ki, bu sort C bucağı üçün eynidir daha doğrusu, buruq brace notation br--. $ - və ya int nums kvadrat olacaq Mötərizədə buruq brace 1, 2, 3, 4 bərabərdir. PHP bu $ nums = kvadrat var Mötərizədə 1, 2, 3, 4. Lakin bu nümunələr, həm də burada mənə vermək Bu halda integers dörd bir sıra. İndi bir şey tack nə istəyirsinizsə? Yaxşı mən yalnız $ nums 4, demək olar ki, yenə biz hələ burada 0-dan hesablanması edirik PHP, beşinci olacaq serialın element. Mən yalnız deyə bilərəm. Mən bir seg əziyyət fikrində deyiləm Mənim array yalnız çünki, günah ki, yerləşdirilməsi üçün inkişaf gedir. Bu doğru, olduqca gözəl var? Və əslində, mən hətta lazım deyil Mən onu qoymaq istədiyiniz daxil. Mən yalnız bu və yalnız demək olar Sağ sonuna onu tack, və ya hətta yalnız bilər $ nums 20 və ya 1000 deyirlər. Bu, həqiqətən etməz. Bu hələ olacaq sonuna doğru bu tack. Beləliklə, mən inkişaf və biz istəyirik as-- bilər burada əhatə etmək niyyətində deyil, amma toy və ya zolaq bilər eləcə də serialın həyata elementləri, və array yerləşdirilməsi üçün shrink edəcək ki, indi itkin düşmüş və ya boş. Tack üçün başqa yol var bir sıra üzərində bir şey, olan array_push adlı bir funksiyası var. Belə ki, yenə, olan yalnız bu fikir Şeyi bir çox müxtəlif yollarla edə. Beləliklə, biz artıq üç müxtəlif yollarla gördüm bir sıra üzərində bir element tack. Belə ki, bu, başqa bir element edir $ nums serialın sonuna. Və biz məlumat növləri qədər mix edə bilərsiniz. Belə ki, mən bir sıra ola bilər 1, 2, 3, 4, lakin 1, əsl, 3, 4, burada doğru bir Boolean, sonra Mən bir element tack istəyirsinizsə ki array, bəlkə bir simli, string "beş" Mən bunu edə bilər. İndi mənim array ki doğru 1, 3, 4, beş olun. söz beş deyil, tam 5. Belə ki, orada rahatlıq bir çox. rahatlıq olur daha yaxşı olsa da, PHP bir şey üçün dəstək var, çünki assosiativ array çağırıb. Və biz sort yayğın söhbət C haqqında assosiativ seriallarda hash masalar kontekstində, çünki nə assosiativ Diziler həqiqətən bütün əsas edirik haqqında dəyər cüt mappings. Və bu halda, keys-- biz C serialların ilə tanış edirik düymələri index nömrələri var. 0, 1, 2, 3. Və dəyərləri biz ki, tapa nə array 0, array 1, belə ki, array 2,. Belə ki, düymələri göstəriciləri var, və dəyərlər ki array yeri nə, ki, index tərəfindən müəyyən. Lakin PHP, biz bunu yoxdur array 0 anlayışı, dizi 1, array 2 artıq. Biz indi faktiki sözləri istifadə edə bilərsiniz dəyərlərə düymələri xəritəsi. Və mən bu kimi bir şey deyə bilər. Mən istifadə bir sıra yarada bilər aşağıdakı kimi kvadrat mötərizə sintaksis. $ Pizzas = kvadrat mötərizə "Pendir" və sonra ikiqat arrow notation bu cür, 8.99 "pepperoni," 10.99-- 9.99 arrow və s. Və belə nə burada olub? Mən, həqiqətən, nə edirəm? Mən əsas dəyər cüt mappings yaratmaq alıram. Belə ki, əvəzinə söyləyərək, məsələn, pizzas 0, ədəd 1, pizzas 2, İndi pizzas demək olar pendir, pizzas pepperoni, və dəyərlərə müraciət onlarla bağlı. Belə ki, burada bizim düymələri yaşıl var. Pendir, pepperoni, tərəvəz, camış toyuq. Burada edir arrow bu əsas dəyər cüt mapping. Və sonra burada dəyərlərdir ki array yeri. Belə ki, array 0 8.99 bərabərdir deyən kimi. əsas 0. dəyəri 8.99 edir. İndi array pendir demək, və ya bu bilər hal pizzas pendir, pendir, əsas və mən nə tapmaq pizzas pendir 8.99 edir. Mən orada tapa dəyəri var. Belə ki, Mən hər şeyi kimi demək olar. $ Pizza pendir = 7.99. Mən satış yaşıyorum deyirlər. Mən düşmək istəyirəm dis-- istəyirəm pendir pizza qiyməti. Və ya tərəvəz istifadə edə bilərsiniz pizza bir şərt hissəsi kimi, və ya yeni bir element əlavə edə bilərsiniz mənim array, yalnız mən əvvəllər edə bilər kimi. Bu yeni bir element əlavə edə bilərsiniz əsas "donuz" ilə assosiativ array və dəyəri 13.49. Amma bu cür bir problem təqdim edir Bir ikinci bu barədə düşünürəm. Biz bu array vasitəsilə təkrarlamaq olar? Sağ? C, biz yalnız bir olardı loop üçün, adətən, ki, 0-dan çalışır 1 minus serialın ölçüsü. array da n elementlər vardır, etibarlı göstəriciləri n minus 1 0 var. Belə ki, biz loop üçün istifadə edə bilər hər bir element gezinmek. Amma bu həqiqətən deyil hal artıq, sağ? İndi biz əsas dəyər cüt olduğu düymələri sözlər mappings, necə sözləri bütün təkrarlamaq edirsiniz? Bəli, xoşbəxtlikdən, PHP var bir yol, çox bu ilə məşğul və biz geri jump lazımdır ikinci loops üçün loop dördüncü cür təqdim etmək ki, PHP bir foreach loop deyilən mövcuddur. Və nə bir foreach loop yoxdur edir Bu, əsasən eyni fikirdir. Siz serialın hər cür istifadə edə bilərsiniz. Amma bu əsasən loop üçün eyni fikir, əvəzinə istifadə istisna olmaqla, index nömrələri, yalnız Bu qəribə sintaksis harada var Siz hər bir element zəng bu loop məqsədləri üçün bir ad. Bu halda, belə ki, foreach ($ əsas kimi $ array). Əsasən, bu comment qeydləri kimi, ki, foreach loop daxilində, Bu hər bir artıq getmək olacaq adətən $ array, element assosiativ array olacaq, lakin həqiqətən serialın hər cür ola bilər Siz PHP istəyirəm ki. Və hər dəfə loop üçün siz bilər $ array kvadrat mötərizədə edib $ I, yalnız $ düyməsini deyə bilər. Belə ki, $ əsas hər bir alias olur PHP assosiativ array indeksi və siz kimi istifadə edə bilərsiniz. Belə ki, məsələn, biz İndi bizim pizzas array var. I növ tucked etdik orada küncə belə ki, biz tez misal etmək üçün istifadə edə bilərsiniz. Mən foreach ($ pizzas demək olarsa $ Pizza), yaxşı, nələr olur? Bəli, mən hər vasitəsilə təkrarlamaq gedirəm array $ pizzas bir element, və bunu, mən zəng etmək üçün gedirəm hər element, mən daxilində deyiləm loop üçün ki, bədən, pizza $. Belə ki, bir sort var stand-in, geri ki, $ pizza bir stand-in deyərək üçün $ Pizzas kvadrat mötərizədə $ i biz loop, biz üçün istifadə edilmişdir bu halda $ i = 0, getmək bilər, $ I 3 =. Biz əsas dəyər cüt olmasaydı burada, bu element 0, 1, 2, 3 olardı, və biz getmək üçün loop üçün istifadə ki, $ Pizzas 0 $ pizzas 1, $ pizzas 2, $ Pizzas 3. Belə ki, indi yalnız pizza əvəz dollar fərdi düyməsi üçün. Belə ki, nə bu çap gedir? I $ pizza çap alıram. Mən at-- tapmaq üçün gedirəm Mən, $ pizzas $ çap əgər? Sağ? Mən çap gedirəm əgər pizzas İTH element, nə mən çap gedirəm? Mən çap gedirəm ki, yeri dəyərlər, sağ? Biz bunu əgər Like C kontekstində bu, biz adətən bizim iterator istifadə etməyin dəyişən, i = 0, i 3-dən az int i 0, 1, 2, 3 çap, ++. Biz array 0 out çap edirik array 1, array 2, array 3. Və bu çap nə bu. Bu qiymətlərin siyahısı. 8.99, 9.99, 10.99, 11.99. İndi burada tez qeyd. A foreach loop mütləq deyil hər şeyi çap. Bu zəmanət deyil. Bu adətən edir. Bu adətən qaydada əsasında elementləri array əlavə olunur, belə ki, yalnız nəzərə ki daşıyırlar. Bu qaydada ola bilər. Amma foreach loop təkrarlamaq edəcək hər bir element üzrə sual serialın. Bu halda, yenidən, ki array $ pizzas edir. Mən əgər, baxmayaraq ki, sintaksis dəyişə bilərsiniz Mən əsas və dəyəri, həm də istəyirəm. Bunun əvəzinə $ pizzas deyərək $ pizza kimi, mən bu demək olar. Və mən var nə baxsaq burada yaşıl qeyd, Bu əsas dəyər cüt Xəritəçəkmə kimi görünür. Və belə səni əgər deyil, hətta tamamilə bunu olacaq nə əmin, Siz yəqin ki, təxmin edə bilərsiniz ki, $ topping gedir Bu halda əsas ola və $ Qiymət dəyər olacaq. Belə ki, indi hər element əvəz alıram $ əsas dəyər cüt kimi pizzas, və indi əsas müraciət edə bilərsiniz və dəyəri bilər lazımlı, Məsələn, kimi edir. "A bütün" - bu bir çox edir çap burada "A bütün" davam topping sonra qiymət, və "pizza $ xərcləri" Mən bir müddət və backslash n çap. Belə ki, indi, bildiriş daha etmək imkanı var əsas, $ topping və dəyəri, $ qiymət. Belə ki, nə bu tahmin edə bilərsiniz çap gedir? Çap hesabatlarının bir çox var, lakin yalnız bir backslash n var, belə ki, bir şey çap olacaq kodun bir line bir entire--. Mən əsas müraciət edə bilər, əgər və dəyəri, indi, əvəzinə yalnız qadir olan qiymətləri çap, Mən bu kimi bir şey çap edə bilərsiniz. "A bütün pendir pizza $ 8.99 edir." İndi keys-- bütün istifadə edirəm Pendir, pepperoni, tərəvəz, camış chicken-- və dəyərlər. 8.99, 9.99, 10.99, 11.99 So ki, yalnız fərqli bir yol var bir foreach loop etmək ki, yerinə yalnız siz dəyərlərə erişim verilməsi Bu verir Səninlə yalnız verir düymələri və dəyərlərə çıxış. Belə ki, məlumat çap. Mən artıq bu bir neçə etdik müxtəlif yolları, siz qeyd ola bilər. iki funksiyaları biz ilk növbədə var çap və echo görülür. Və olduqca çox bütün niyyətli və məqsədləri, onlar eyni istəyirik. They're-- çox incə var hətta dəyər deyil fərq əsasən hər yerdə nəzərə almaq, lakin Siz yəqin ki, istifadə edə bilərsiniz çap istifadə edə bilərsiniz eləcə də əks-səda. Və yalnız iki deyil. PHP müxtəlif bir çox var şeyi çap yolları, və bu da inteqrasiya yolları var simli ortasında daxil dəyişənlərin. Belə ki, C geri, siz nə funksiyası xatırlayıram biz dəyişənlərin əvəz üçün istifadə edə bilərsiniz şeyi daxil biz çap istəyirsiniz? Siz yəqin ki, bu istifadə bir çox fəaliyyət göstərir. printf, sağ? Belə ki, bu biz daxili əvvəl nə var Bizim foreach loop kontekstində. Biz bu beş idi ayrı-ayrı çap hesabatları ki, yalnız idi, çünki yol Mən, həqiqətən, zaman bilirdi necə mesajları çap. Mən inteqrasiya necə bilmirdim Mənim PHP kodu daxil topping dəyişən $. Bəli, mən yalnız bir vəhşi tahmin qəbul əgər, printf, bu, həqiqətən işləyib olardı. printf istifadə edə bilərsiniz bir funksiyası var PHP, yalnız mən C. istifadə edə bilərsiniz kimi Və bu kimi bir şey, printf, yenə, biz ilə tanış edirik. ilk% s əvəz $ topping dəyəri ilə. ikinci% s əvəz $ qiymət dəyəri. Və mən interpellating alıram, olan yalnız bir xülya yoldur deyərək I yapışdırılması alıram ki, yeri daxil dəyişənlər. Belə ki, topping $ sayede alıram red% s $ qiymət harada mavi% s və və sonra mesaj almaq olardı, "A bütün pendir pizza $ 8.99 edir." Mən də, bunu edə bilər yeganə yolu. Bəlkə bu metodu istifadə etmək istəyirəm. Bu ən çox nə əslində dəyişən Gensoru çağırıb. Mən əks-səda istifadə edə bilərsiniz. Biz görəcəksiniz kimi, çox çap istifadə edə bilər. Amma burada nələr olur? İlk növbədə, mən var dollar işarəsi xilas. Biz, həqiqətən, zaman, çünki, xatırlayıram pizzas qiymətləri çap, Mən, həqiqətən, kimi format edildi bir dollar işarəsi ilə pul rəqəmlər. Amma biz də dollar əlamətləri istifadə etdiyiniz PHP dəyişən adları təmsil etmək, və xüsusilə I olduğumu buruq bu metodu istifadə edərək, brace dəyişən Gensoru üsulu, mən lazım bu deyil mənim dollar işarəsi qaçmağa Mən bir dəyişən söhbət edirəm. Bu, həqiqətən olacaq sanki dollar işarəsi çap. Belə ki, sort üçün analogize orada sonunda görmək nə. Bu, həqiqətən deyil print backslash n, sağ? Bu yeni xətt xarakter çap edir. Bu niyyətində deyil is-- print backslash dollar işarəsi, yalnız çap olacaq bir dollar işarəsi xarakter. Eyni fikir. Ardıcıllığı Escape nə bunlar deyilir. Amma bunu deyiləm ki, qeyd % s Əvəzedicilərimiz hər hansı bir sort, Mən yalnız sözün sayede edirəm bu dəyişənlərin. Və belə şeylərdir burada nə olardı ki, $ topping-- dəyəri yenidən yalnız biz olduğunuz nə uyğun belə far-- pendir söhbət almaq olardı orada takıldığından. Və $ qiymət nə dəyəri ola bilər pizzas at, kvadrat mötərizədə, pendir, olan 8.99 idi. Və bu da çap olardı "A bütün pendir pizza $ 8.99 edir." Dediyim kimi, mən istifadə edə bilər əvəzinə əks-səda burada çap və funksionallıq olmaq Eyni dəqiq olduqca çox. Eyni şey çap olardı. Bunu başqa bir yolu var, bu bir üstünlükdür PHP strings ilə işləyir. Biz string concatenation edə bilərsiniz. Biz də, C bunu edə bilər, strcat adlı funksiyası istifadə edərək, Ancaq yenə də, biz idi ayrı funksiyaları zəng. Bunu bu bütün mess idi. Biz idi string.h funt-daxildir. Bu hüququ, istehsal idi? Amma indi yalnız bu dot operator istifadə edə bilərsiniz birlikdə strings concatenate üçün. Belə ki, "A bütün" concatenating alıram və sonra nə $ topping dəyəri, və sonra başqa bir simli, "pizza xərcləri $" və sonra concatenating nə $ qiymət dəyəri var və sonra çox sonunda mən müddəti backslash n haqqında tacking. Və bu da ki "A bütün" çap - yenidən, Biz ilk bəhs edirsinizsə ki, pizzas serialın element "A bütün pendir pizza $ 8.99 edir." Period yenə backslash n, ilə $ Topping və $ qiymət əvəz biz foreach göstərilən nə üçün əsas dəyər cüt mapping kimi loop. PHP funksiyaları idarə edə bilərsiniz. Funksiyaları sort idi C ayrılmaz kimi gördük. Dəyişənlər kimi, biz lazım deyil , funksiyası qaytarılması növü müəyyən bu, həqiqətən etməz, çünki. Biz daxil deyil Hər hansı bir parametrləri data növləri, Onlar, həqiqətən, yoxdur, çünki olsun, biz PHP gördüm kimi. Hər bir funksiyası təqdim olunur funksiyası söz ilə. Yəni, biz buna PHP göstərir necə biz söhbət edirik bir funksiyası var. Və biz yoxdur bütün əsas ilə məşğul, tərcüməçi, çünki PHP tərcüməçi, üstdən-aşağı işləyir, asılı olmayaraq. Bu görür Əgər edə bilər bir funksiyası zəng, bu lazımdır funksiyası zəng tapmaq getmək, hətta sonra gəlir. Amma bu üst oxumaq olacaq alt, belə ki, biz müəyyən etmək üçün ehtiyac yoxdur, Siz başlamaq burada. Siz xəttində 1-də start sizin PHP oradan aşağı işləmək və. Belə ki, burada biz yaradacaq necə bir funksiyası hard_square çağırıb. Bu yəqin birini tutur parametri, I $ x zəng edirəm. Bu funksiya yalnız mürəkkəbdir müxtəlif şeylər göstərmək üçün. Biz hələ geri dəyərləri var. Mən burada loop üçün istifadə edirəm. Amma bu əsasən yalnız, nə var yalnız $ x dəfə $ x təşkil edir. Mən, həqiqətən, yalnız əlavə olunur edirəm x x dəfə 0 və ya $ sıfır $ x dəfə x. Amma bu səmərəli dəqiq $ x dəfə $ x çarparaq eyni. Mən hələ bir dəyər qayıda bilər, Bu halda $ nəticəsində, və mən PHP bir funksiyası etdik. Burada siz kontekstində bu istifadə edə bilər necə. Belə ki, bəlkə mən bir PHP fayl daxilində deyiləm. Var ki, mavi edək Mən PHP sınırlayıcıları istifadə etdiyiniz, angle bracket sual işarəsi php. Həmin arasında bütün var Mən yazmaq istəyirəm PHP. Beləliklə, mən yəqin get-- gedirəm Mən istifadəçi təklif gedirəm Mənə bir sıra mağaza vermək ki, dəyişən, dəyişən $ x mağaza, nə onlar mənə verdi. Sonra mən echo gedirəm ki, dəyəri hard_square, və yəqin gedir yeni xətt tack eləcə də, sonra sonra mən lazımdır belə hard_square funksiyası müəyyən mən zaman hard_square zəng, Mən söhbət alıram nə bilir. İndi də edə bilər bu kimi bir şey. Bu bir az fərqlidir. Demək olar ki, dəqiq biz əvvəl gördüm nə kimi eyni, x əvəzinə yalnız $ deyərək başqa orada parametri hard_square kimi, I $ x = 10 deyirəm. Belə ki, bu bir nümunəsidir müdafiə proqramlaşdırma, proqramları mühafizə zərərli istifadəçilər qarşı. Bu, bəzi səhv etmək bir yoldur Biz, həqiqətən deyil ki yoxlanılması C. bir seçim olaraq var Biz əsla bilər bir şey default dəyəri müəyyən. Biz həmişə yoxlamaq idi olub, məsələn, biz GetString zəng əgər, o ən düzgün dərhal biz sonra , biz yoxlanılır ki, yoxlanılır simli olub istifadəçi bizə verdi ki, , null bərabər deyil biz başlamaq istəmirəm, çünki bir null simli ilə işləyir. Burada, bu bir yoldur ki, qarşı qorumaq üçün. Istifadəçi bizə bir şey təmin etmirsə birtəhər, biz nə edəcəyik? Bəli, biz yalnız demək lazımdır nə bizi təmin etməyib, biz yalnız əvəzinə 10 plug olacaq. Onlar bizə bir dəyər vermədi Belə ki, yalnız default 10 istifadə edin. Və belə ki, burada, Mən qəbul edirəm ki, görürsünüz bir hard_square zəng, lakin heç bir tez var istifadəçi, sağ? Mən yalnız bir boş zəngi alıram. Amma mənim funksiyası hard_square bir parametri gözləyir. Bu çap gedir? Bu doğru, 100 çap olacaq? Istifadəçi çünki mənə bir şey verir. Və mən yalnız güman gedirəm 10-- 10 ki default dəyəri. Və bu çap olardı 100 öz xətti. PHP faylları yoxdur yalnız bir fayl ola bilər. Siz birlikdə birdən çox fayl birləşdirə bilər, yalnız C. siz yolu kimi biz C nə adətən idi ki, etdi # daxildir header faylları çıxardı almaq üçün. Biz PHP ki, yoxdur. Biz Require_once deyilən bir şey yoxdur. Və sonra bu bütün var şey, bu __dir__ nə var? Bu yalnız bir xüsusi dəyişən və ya xüsusi daimi, həqiqətən ki, nə ifadə Cari kataloq edir. Və belə ki, baxmaq olacaq Cari kataloq bir fayl adlı cs50.php üçün burada bu nümunə, və bu fayl qalmaq olacaq PHP proqram üst, Siz the tələb qoymaq ki, fərz PHP fayl üst xətti dəfə. Belə ki, PHP ilk növbədə, istifadə olunur lakin yalnız istifadə deyil web-based proqramlaşdırma üçün dil kimi. Ki, olmaq üçün gəldi həqiqətən necə. Amma bu tam biz gördük kimi dil. Biz olduqca çox hər şeyi gördüm Bu C bənzər ki, nə edə bilər ki, və bir heck edə bilərsiniz daha çox. Amma bu, çünki tam dili və biz bu command line proqramlaşdırma edə bilərsiniz. Biz command line proqramları çalıştırabilirsiniz. Bütün bir funksiyanı çalıştırın tələb olunur PHP yazılı line proqramı Bir PHP tərcüməçi var. Belə ki, sort analoji var sistem bir compiler olan Siz C kodu tərtib etmək istəyirsinizsə, çalıştırılabilir fayllar çevirmək. Siz PHP tərcüməçi lazımdır ki, sistem mövcuddur belə ki, PHP faylları şərh edə bilər. Siz nə etsək, və adətən bu tərcüməçi, PHP adlanır və adətən ən ilə hediye var downloads ya PHP-nin qurğuları əlbəttə ki, online almaq və edə bilərsiniz ki, PHP tərcüməçi adı biz CS50 IDE var. Siz bütün növü php fayl. Və nə proqramın edəcəyimiz bu deyil axır gedir tərcüməçi, bu ki, hər şey ignore gedir söz mövzusu deyil mark-- arasında və ya, bucaq bracket sual işarəsi php, PHP sınırlayıcıları və onu çap və bu şərh və icra edəcək PHP foydalanish daxilində kodu. Belə ki, CS50 IDE üzərində pop imkan və PHP faylları bir neçə bir göz var, da, PHP faylları bir neçə çalışan CS50 IDE command line interface. Belə ki, burada biz CS50 IDE var, Mən azadlıq qəbul etdik bir hello1.php adlı bir fayl açılması. Bu və yəqin, məzmunu fayl, orada yalnız PHP sınırlayıcıları var və echo arasında ("Salam, dünya"). Bu olduqca sadə PHP proqramdır. Mən yalnız aşağıya fırladın gedirəm burada terminal pəncərə, və mən PHP yazın gedirəm hello1.php daxil edib. Salam Dünya. Yəni biz nə yəqin ki, var bunu gözləyirik, sağ? Qədər getmək və edək başqa bir proqram oldu. hello2.php. Olduqca çox eyni şey, bir çox burada niyyətində deyil. Bu dəfə, baxmayaraq ki, mən təklif gedirəm istifadəçi mənə adlarını vermək. Mən bir daha ki readline funksiyası istifadə edirəm. $ Name = readline. Bu tez, var "Adın nədir?" Yəqin mən çap deyiləm öz xətti. Və sonra, belə ki, line aşağıda ki, tez olacaq istifadəçi öz adını daxil edə bilərsiniz. Və sonra mən bir az istifadə edirəm xətti 3 burada dəyişən sorğu "Hello" çap və nə istifadəçi. Belə ki, bu Hello deyərək eyni deyil, vergül,% s biz C. printf istifadə edilmişdir Belə ki, getmək və bu proqram şərh edək. Belə ki, yenə, mən aşağı diyirləyin lazımdır Mənim terminal pəncərə. php hello2.php. Adın nədir? Doug. Salam, Doug. Mən də bir var Fayl hello3.php çağırıb. Mən təmizləmək üçün gedirəm mənim Control L ekran, və mən ki, icra gedirəm. Adın nədir? Doug. Salam, Doug. Belə ki, davranış ilə eynidir hello2.php, amma niyə bu hello3.php edir? Yaxşı, burada fərq var. Bu halda, bildiriş burada line 1, Mən bir şey var PHP foydalanish arasında. Mən yalnız yazaraq və ya çap alıram yalnız "adı nədir?" tipli PHP tərcüməçi görür, o, heç bir fikir necə PHP kimi şərh etmişdir və belə əvəzinə, uğursuz yalnız tüpürmək olacaq. Belə ki, indi xətti 3 mənim zəng qeyd readline, artıq heç bir tez var. Mən, həqiqətən, to-- zaman gedirəm PHP tərcüməçi, bu görür onu çap olacaq "Adın nədir?" Sonra here's--, OK, oh, görür başqa hər şey olacaq belə ki, PHP kimi təfsir Bu işləri niyə ki. Mən mütləq təklif yoxdur readline daxilində user to--, Mən yalnız kənarda ola bilər PHP foydalanish və tərcüməçi imkan yalnız mənim üçün onu çap. Belə ki, həqiqətən, yalnız yoxdur PHP foydalanish bir set var proqram. Siz, həqiqətən, onlara bir neçə ola bilər açılması və lazım kimi bağlanması. Belə ki, bir nəzər salaq proqramları bir neçə burada CS50 IDE biz olan bu fikir göstərmək ayrılmış PHP çox dəstləri. OK, belə ki, mən bir fayl açmıştınız burada add1.php çağırıb. Və burada nə görürsünüz. Just əvvəlki kimi, mən bir bir PHP foydalanish müəyyən. Mən çap gedirəm mesajında, "Mənə bir sıra verin." Sonra bir xətt oxumaq gedirəm və dəyişən $ num1 onu saxlamaq. Sonra yenə çap gedirəm. Mənə bir ikinci sayı verin. Istifadəçi mağaza bir line onlar $ num2 in tipli nə. Onlara birlikdə əlavə və saxlamaq $ məbləği adlı dəyişən səbəb və sonra ", çap bu iki ədəd məbləği , "və sonra gensoru orada dəyişən $ məbləği. Belə ki, yalnız bu run bildirin tərcüməçi vasitəsilə bu biz gözləyirik nə olduğunu təsdiq etmək. php add1.php. Mənə bir sıra 3 verin. Mənə bir ikinci sıra, 4 verin. bu iki ədəd məbləği 7. 3 plus 4 var. OLDU? Orada heç bir şey olduqca xülya. İndi add2.php açmaq bildirin. Burada mən PHP bir neçə var orada dəstləri ayrılmış, sağ? Lines 1, 3 edəcəyik xətləri 1 və 3 heç bir PHP sınırlayıcıları var. Belə ki, tərcüməçi Bu, yalnız var, onları görür dəqiq tüpürmək gedir Mən orada yazdığınız. Mən harada ki, var Mənim isteyen bütün edir. Xətləri 2 və 4-də görürük çox tanış $? foydalanish php sort, belə ki, o iki xətləri var PHP kimi həyata olacaq. Və sonra line 5, mən bu var burada qəribə bir şey, sağ? Bu bucaq bracket sual işarəsi bərabər işarəsi. Mən hətta bir az daha da yaxınlaşdırmaq lazımdır. Bu mən nə edə bilərsiniz , orada bu $ danışır? =. Bu ki, ümumi ki çıxır biz PHP bir sıra açmaq səbəbi sınırlayıcıları bir dəyər çap edir. Və biz nə olacaq bütün var. Amma ki, hətta stenoqrafiya var. $? = Deyərək PHP kısaltmasıdır $ kimi bir şey? echo php məbləği num1 və num2 edir. Belə ki, bu yalnız bir deyil ki, stenoqrafiya. Bu proqram, php add2.php Belə ki. Mən bir az aşağı zoom olacaq. Mənə bir sıra 4 verin. Mənə bir ikinci sayı verin. Mən, həqiqətən, qayğı yoxdur, çünki PHP data növləri, mən 4,8 demək olar. bu iki ədəd məbləği 8.8. Ki, funksiyası olduqca çox davranır biz gözləyirik ki, tam olaraq eyni, həmçinin. Mən bir daha açıldı burada dice.php çağırıb. Yenə bu cəhd edin. Mən bir daha çağırıb var Həmçinin bax dice1.php, ki, bucaq bracket sual var Orada bərabər işarəsi notation qeyd, lakin bu halda mən fark funksiyası Rand, zəng edən sizin kimi gözləyə bilər bir təsadüfi sayı yaradır. "Siz bir yayılmış" və olacaq + bəzi təsadüfi sayı, mod 6 hesablamaq 1. Belə ki, mənə sayı verəcəyik 1 6 aralığında. Mod 6 mənə verir ki, saxla 0 5 aralığında bir sıra, amma zar rulonlarda təqlid alıram əgər, Mən burada edirəm nə, Mən bu zar 0 getmək istəmirəm 5, mən 1-dən 6-getmək zar istəyirəm. Və bu almaq üçün bir yoldur 1 6 aralığında mənə. Mən iki dəfə bunu edirəm. Belə ki, yəqin mən yayma edirəm Bu proqram iki zar. Beləliklə, mən ekran sil lazımdır, və mən php dice1.php edəcəyik. Siz 4 və 2 atdı. Mən proqram run əgər daha, bir 5 və 5 atdı. Belə ki, proqram run hər zaman, Mən müxtəlif nömrələr alıram Çünki mən hər zaman belə ki, artıq başlayan. Bu yeni yaratmaq olacaq Mənim üçün təsadüfi ədəd seçin. Biz istifadə edirsinizsə, belə ki, C proqramları çalışan, biz ./ yazaraq üçün istifadə etdiyiniz sağ, bir proqram adı? Yəni biz bütün etdik necə C proqramları bu günə qədər. Biz həmçinin PHP bunu edə bilərsiniz bir şey əlavə çağırılan Bizim PHP fayl üst bir shebang. Mən bir silly söz növü var bilirik. Bu hash bang üçün qısa. Ki, orada ilk iki simvol var. Biz ünlem zəng saxla kompüter tez-tez bir bang. O, həmçinin kəskin bang üçün ola bilər. Şərh üçün bir neçə yolları var. Amma bu, əsasən xüsusi sort əmri ki, PHP tərcüməçi oh, mən istəyirəm, kimi anlayır Bu proqram icra etmək, olan yəqin / user / bin / php, olan burada PHP tərcüməçi əslində xüsusi bizim sistem yaşayır. It's-- Belə ki, nə burada olur tərcüməçi, oh, anlayır Mən yəqin istifadə güman edirəm Bu proqram bu faylı çalıştırmak üçün. Və belə sizə imkan verir addım üzərində keçmək bir php something.php demək olan. Başqa bir tutmaq var Burada olan ki, əgər biz Bizim proqramları istəyirəm gözlənildiyi kimi, biz iş deyilən bir şey etmək lazımdır bir fayl icazə dəyişiklik. Və biz git lazımdır və biz bir az danışmaq bit haqqında daha çox fayl icazə dəyişikliklər Bizim MVC video, lakin onu kifayətdir bu nə etmək lazımdır ki, demək etmək üçün sizin Php faylları çalıştırılabilir. Belə ki, bu nəzər edək CS50 IDE bizim son nümunəsidir üzərində. Belə ki, burada IDE bu iki faylları Olmaq üçün görünür PHP directory Php çağırıb. Mən bir funksiyası adlanır var add-- Mən bir fayl adlı add3 var və bir fayl dice2 çağırıb. Belə ki, tez götürək baxmaq və add3 açmaq. Və əvvəlində, Gördüyünüz kimi Mənim fayl Mən bu shebang var? Bu hash mark nida point. İndi, bəlkə də lazımdır nədənsə ki, qeyd, Mən heç bir sintaksis yoxdur Artıq vurğulayaraq, və bu, mən əvvəllər üçün alluded nə Mən mənim fayl adını yoxsa idi Php, mən fayda yoxdur sintaksis artıq vurğulayaraq. Bu fayl yalnız add3 adlanır. Mən sonra run bilər ki, ./ add3 və ./ add3.php ilə. Belə ki, reason-- hələ də var gözəl, hələ etibarlı PHP var, lakin, çünki, qeyd sintaksis deyil Bu fayl something.php adlı deyil. Yalnız real fərq var Burada plus shebang. Belə ki, zaman nə görmək edək Mən cəhd və bu proqram run. ./ Add3, yalnız mən C. Bash ilə olduğu kimi. ./ Add3 icazə təkzib edib. Bu olacaq nə unutmaq görmek üçün dəyişdirmək üçün chmod funksiyanı istifadə etmək fayl icazələrin. Bu müntəzəm PHP çıxır kimi faylları yalnız icra edilə bilməz. Onlar təfsir edilə bilər, lakin biz istəyirik burada bir az fərqli bir şey edir. Biz bunu icra edirik. Və mən icazə əlavə etmək lazımdır icra, bir + x üçün add3 chmod. Sonra mən ./ add3 demək olar. Mənə bir sıra verin. 5, 6. bu iki ədəd məbləği 11. Eynilə, mən artıq chmoded var dice2, mən yalnız, dice2 ./ yazın Bir 1 və 1 yayılmış, siz belə bir 5 və 4, və diyirləndi. Belə ki, olduqca çox PHP sintaksis ideyası, sağ? Vasitəsilə almaq üçün bir çox var, mən bilirəm. Amma inşallah ki, PHP indi gördüm C həqiqətən fərqli deyil və həqiqətən bizə imkanı verir bir pillə və ya iki şeyi etmək. Biz, həqiqətən, narahat yoxdur Biz, həqiqətən, yoxdur about-- çox haqqında çox narahat aşağı səviyyədə ətraflı biz sağ, C narahat idi? Biz yüksək diqqət səviyyəsi stuff ki PHP bizə imkan verir və etmək bu, bizim üçün işləyəcək verdi. Belə ki, indi bizə imkanı verir PHP C keçid, daha çox olan proqramları etmək kompleks və bəlkə də bir çox daha möhkəm. Mən sizə fun iş var ümid PHP ilə, mən Doug Lloyd edirəm. Bu CS50 edir.