[Powered by Google Translate] [Bölmə 8 - Daha Rahat] [Rob Bowden - Harvard Universiteti] [Bu CS50 edir. - CS50.TV] Bu həftə bölməsində qeyd olduqca qısa olacaq Mən söhbət saxlamaq gedirəm ki, siz uşaqlar, suallar saxlamaq gedir və biz mümkün qədər vaxt doldurmaq üçün çalışacağıq. Bir çox insan bu pset mütləq çətin deyil ki, lakin bu çox uzun. Bu pset spec özü bir saat oxumaq edir. Biz bəlkə istifadə etmək lazımdır bilər SQL bir çox verir. Biz bir çox vasitəsilə gəzmək, belə ki, çox pis ola bilməz. Hər açılmış və ya başa çatdımı? Bu son pset var. Aman Allah. Adətən Təqvimə dəyişiklik şey var sonra bir JavaScript bir, lakin 1 həftə daha qısa olan hər şeyi edir və biz artıq bir JavaScript pset var. Hesab edirəm ki, JavaScript imtahan görünür gedən olub-olmadığını necə təsir bilmirəm və ya 1 İlke. Mən sizə JavaScript haqqında yüksək səviyyəli şeyi bilmək lazımdır kimi bir şey olacaq təsəvvür amma biz yalnız düz JavaScript kodu vermək istədiyiniz şübhə siz bir pset idi çünki. Lakin gələn həftə viktorina baxılması üçün heyəti olacaq. Suallar Bölmə. Bu məhsulları bir çox qədər zəif mətni, lakin biz niyə müzakirə edəcəyik. C fərqli olaraq, PHP bir "dinamik tipli" dilidir. Bu demək nə, xahiş? Yaxşı, o char, float, int və digər açar sözlər, bütün veda istifadə etmək lazımdır dəyişənlərin və C. funksiyaları elan zaman PHP, bir dəyişən növü hazırda keçirilməsi ki, dəyəri müəyyən edilir. Biz dynamic.php adlı fayla bu kodu yazın, belə ki, əvvəl PHP dinamik çap olunur. Bu həqiqətdir. Mən ki, int, char, float güle güle dedi edirik deməkdir ki, razı və digər açar sözlər,. Dinamik tipli və alternativ arasında dəqiq fərq statik çap olunur ki, dinamik tipli, sizin növü yoxlanılması və məhsullarının bütün , run zaman baş statik tipli halbuki bu tərtib zaman olur. Ümumi statik sözü tərtib vaxt şeyi demək görünür. Bunun üçün digər istifadə var danışarlar, ancaq bir statik dəyişən bəyan zaman C, ildə onun saxlama tərtib vaxt ayrılır. Burada dinamik tipli yalnız o deməkdir ki, - C siz tərtib edərkən, simli və tam əlavə etmək üçün çalışırıq, əgər bu bir int və bir pointer əlavə edə bilməz ki, olacaq, çünki şikayət edəcək. Bu yalnız cari bir əməliyyat deyil. Yəni ikinci almaq lazımdır ki, bir şey. Lakin yoxlama ki, sort, bu tərtib vaxt şikayət ki, statik növü yoxlanılması deyil. Siz char, float, int demək ehtiyac yoxdur yerləşir dil, və o hər şeyi var lakin dil, bu ehtimal nə cür şey kontekstindən deyə bilərsiniz lakin hələ də statik çap edir. Siz 51, OCaml almaq Belə ki, əgər, bu cür hər hansı bir istifadə etmək lazımdır heç lakin hələ də tərtib zamanda bir int və simli qarışdırmaqla edirik, çünki bu edə bilməz deyəcəklər. Dinamik tipli yalnız zaman run vaxt ərzində bir şikayət almaq olacaq deməkdir. Siz də, ümumiyyətlə, əvvəl Java istifadə varsa, demək olar ki, hər hansı bir C-type dili statik belə C, C + +, Java, o bütün ümumiyyətlə statik çap edilir, çap olacaq. Java siz bir şey tərtib və sizə deyə etdiyiniz zaman string s, simli deyil ki, yeni bir şey bərabərdir ki, bu növ yalnız uyğun deyil, çünki şikayət edəcək. Bu tərtib vaxt şikayət edəcək. Əgər bir şey salmaq cəhd Lakin bu da hər şeyi bir neçə dinamik vaxt var onun cari növü daha çox xüsusi ki, bir növ, ki cast nail gedir olmadığını yoxlamaq üçün tərtib zamanda edə biləcəyimiz bir şey yoxdur. Java də yoxlanılması bəzi dinamik növü, bu kodu ki, xətt olur kimi faktiki icra zamanı, o, tökmə nə olacaq ki cast ilk növbədə etibarlı idi, yoxlamaq və bu idi əgər, o, sizi yalnış növü var ki, şikayət olacaq. Dinamik növü yoxlanılması. Dynamic.php adlı fayla bu edin. Dynamic.php. Hesab edirəm ki, format açın lazımdır. Biz tam 7-müəyyən, bir dəyişən var sonra biz bu və% s çap olacaq - Oh, biz bu növü çap edirik, belə gettype dəyişən növü qayıtmaq üçün gedir. Biz yalnız üzərində yenidən növü çap edirik. Biz yalnız php.dynamic.php. Biz görəcəksiniz ki, tam dan Boolean üçün simli bu dəyişikliklər biz vasitəsilə getmək kimi. C heç Boolean data növü var, heç bir string data type var. Yoxdur char * və Boolean yalnız int və ya char və ya bir şey üçün çalışır. PHP bu növləri var ki, C-dən PHP böyük üstünlüklərindən biri - string əməliyyatları Onlar yalnız iş C. dən PHP sonsuz asan edir. Beləliklə, biz burada geri gəlir. Biz dynamic.php qaçdı. Bu dynamic.php ildə PHP kod çalıştırmaya php adlı PHP tərcüməçi, deyir. Siz fayl hər hansı bir səhv varsa, tərcüməçi sizə olacaq! Tərcüməçi, bu PHP və C. arasında böyük bir fərq C siz bir şey tərtib və sonra siz tərtib fayl run var. PHP siz bir şey tərtib heç vaxt. Belə ki, PHP tərcüməçi əsasən yalnız xətti ilə bu xətti oxu edir. Bu var = 7, sonra onu bu printf və s xit sonra var xit printf sonra hits. Orada nə tərtib bir az və bu nəticələri önbelleğe Siz çalıştırmanızı əgər sonra bəzi bunu edə bilər lakin əsasən bu şey xətti sırala xətti var. Yəni biz C almaq ki, optimizasyon çox deməkdir tərtib kimi, bu compiler sizin üçün tövsiyələr bir çox edə bilərsiniz yalnız adətən var. Bu olunmamış dəyişənlərin həyata bilər, bu, hər şeyi bu növ bütün edə bilərsiniz bu quyruq recursion edə bilərsiniz. PHP siz ki, üstünlük əldə etmək fikrində deyilik yalnız xətti ilə line line həyata başlamaq olacaq, çünki və həqiqətən kimi asanlıqla bu şeyi tanımır 1 böyük tərtib şey üzərində pass və sonra edam deyil bəri; bu xətti ilə yalnız xətt var. Belə ki, tərcüməçi var. Dinamik yazaraq geri: pretty cool, eh? Siz mütləq C bunu bilməz! Aşağıdakı dəyərlər hər növü anlamaq əgər İndi, bax. Sened üçün bu baxın. 3.50 belə. Siz olacaq ki, nə növü düşünürsünüz? Burada biz növləri var. Biz bools, integers, üzən bal, simlər, diziler, obyektlərin var və sonra naməlum növü ehtiyatları olan. Mən bir misal burada həqiqətən var edirəm. Sonra NULL var. NULL xüsusi növüdür. NULL yalnız ünvan 0 ilə pointer olduğu C fərqli olaraq, PHP, NULL ki növü yalnız cari şey NULL olduğu öz növüdür. Bu çox faydalı səhv yoxlanılması üçün. Sizə NULL qayıtmaq əgər bu məsələ olduğu C-ci ildə, ki, siz bir NULL pointer qaytarılması və ya səhv demek üçün NULL istifadə etdiyiniz deməkdir və ya bir nöqtədə olduğunu qarışıqlıq bütün. Burada, NULL qaytarılması ümumiyyətlə səhv deməkdir. Şeyi çox da səhv yalan qaytarın. Amma məqam NULL növü deyil, NULL tipli yeganə NULL edir. Bəzi anonim funksiyaları müəyyən edə bilərsiniz kimi Sonra callback edir. Siz funksiyası adı vermək yoxdur, lakin burada ilə məşğul olmayacaq. Onlar bizə gözləyirik ki növləri baxanda siz 3.50 növü nə düşünürsünüz? >> [Tələbə] Float. Bəli. Beləliklə, burada siz bu növü nə düşünürsünüz? >> [Tələbə] Array. Bəli. Ilk bir float idi, ikinci bir sıra edir. Bu array C array kimi deyil Qeyd edək ki, siz index olduğu 0 bəzi dəyəri var, index 1 bəzi dəyəri var. Burada göstəriciləri a, b və c və dəyərlər 1, 2, 3 edir. PHP assosiativ array və yalnız müntəzəm array arasında heç bir fərq yoxdur siz C. düşünün kimi Var yalnız bu və başlıq altında müntəzəm array yalnız assosiativ array edir Ü bəzi dəyəri üçün bəzi dəyəri 0 xəritələrin eyni yolu maps. Bu səbəbdən, PHP, həqiqətən, hızlı kodu / karşılaştırma şeylər üçün olduqca pis ola bilər C bir sıra istifadə etdiyiniz zaman ildən bir üzv daxil daimi zaman bilirik. PHP bir üzv daxil nə qədər vaxt bilen var? Düzgün hashes əgər Bu, yəqin ki sabit deyil. Kim həqiqətən başlıq altında bunu nə bilir? Siz, həqiqətən, bu ilə məşğul olacaq necə həyata baxmaq lazımdır. Beləliklə fopen. Mən yalnız PHP dərslik fopen qaytarılması növü baxmaq edək burada edirəm. Biz sizə PHP dərslik olduqca çox hər hansı bir funksiyası arayabilirsiniz burada və bu PHP adamı səhifə sortudur. Qaytarılması növü resurs olacaq. Mən bu qədər baxdı niyə biz həqiqətən resurs müəyyən çünki ki, var. Resurs ideyası, C sizə növü bir Resim * və ya hər hansı var; PHP qaynaq fayl dir *. Bu okuma olacaq ne var, bu yazılı olacaq ne var. Bu adətən xarici var, belə ki, sizə hər şeyi çəkmək və hər şeyi atmaq resurs var. Və nəhayət, NULL növü nədir? >> [Tələbə] NULL. Bəli. Belə ki, NULL ki, yalnız bir şey NULL edir. NULL NULL edir. PHP növü sistemi (yaxşı və ya pis) bir xüsusiyyət növ hoqqabazlıq etmək qabiliyyəti var. Siz müxtəlif dəyərləri birləşdirən PHP kodu bir line yazarkən, PHP həssas şey çalışacağıq. PHP aşağıdakı kod xətləri hər cəhd edin. Nə çap edir? Beklediğiniz nə olar? Niyə və ya nə deyil? PHP haqqında Bu fakt biz zəif tipli zəng nə edir nə. Zəif tipli və güclü tipli, şərtlərindən üçün müxtəlif məqsədlər var Lakin insanların çoxu şey bu cür demək zəif tipli və güclü tipli istifadə Ü ("1" + 2); ki, işləyir. C ki işləməyəcək. Bu iş təsəvvür edə bilərsiniz. Bir çox dinamik yazaraq və zəif yazaraq və statik yazaraq və güclü yazaraq qədər qarışdırılır. Python dinamik tipli olan bir dil bir nümunəsidir. Siz dəyişənlərin növləri ətrafında atmaq və run zaman müəyyən olacaq hər hansı bir səhv checkings. Python ildə bu icra və onu ("1" + 2) görəcəklər olacaq; bu bir simli və tam əlavə edə bilməz deyir, çünki bu uğursuz olacaq. Kimi dinamik tipli olan PHP, bu, uğursuz deyil. Zəif yazaraq bu növ şeylər edir ki, nə var, həqiqətən mütləq mənada deyil ki. Belə ki, ("1" + 2); Mən string 12 olan, bu simli 3 olan təsəvvür edə bilərsiniz ki, təsəvvür edə bilərsiniz, Mən bunu tam 3 olan təsəvvür edə bilərsiniz. Bu mütləq yaxşı müəyyən deyil, biz yəqin ki, burada görmək olacaq biz çap zaman ("1" + 2) ki, yəqin ki, müxtəlif olan son olacaq çap dən (1 + "2"). Və bu pis, mənim fikrimcə, olmaq üçün çalışır. Burada biz bu cəhd edə bilərsiniz. PHP haqqında başqa bir az oyun, həqiqətən, fayl yazmaq lazımdır yoxdur. Bu komanda rejimi çalıştırmak yoxdur. Php-r Belə ki, sonra biz burada komanda atmaq bilər: "Çap ('1 '+ 2);" və yeni bir xətt atmaq lazımdır. Bu 3 çap. 3 baskı və tam 3 var kimi görünür. Belə ki, indi-nin ətrafında digər yol edək: "Çap (1 + '2 '); Biz 3 almaq, bu da tam 3 olacaq? Mən vicdanla heç bir fikrim yoxdur. Bu ardıcıl olduğunu kimi görünür. Bu string 12 və ya kimi bir şey olan hər hansı bir şans olduğunu heç vaxt çünki çox PHP, fərqli JavaScript və Java concatenation üçün ayrı bir operator var. PHP Concatenation dot edir. Çap Belə (1 '2 '.); Bookmark 12 vermək niyyətindədir. Bu, insanların küç + = kimi bir şey cəhd qarışıqlıq səbəb çalışır onlar simli sonuna əlavə etmək istəyirəm ki, uğursuz olur ki, bəzi başqa şey. Siz küç etmək lazımdır. = Beləliklə, PHP concatenation bir nöqtə olduğunu unutmayın. Cəhd Digər şey: ("CS" + 50) çap; I CS50 nəticəsində bu ümid yoxdur ki, siz bildirib etdik concatenation + deyil bəri. Bu olan qədər başa gedir nə düşünürsünüz? Mən vicdanla heç bir fikrim yoxdur. Yalnız 50 var kimi görünür. Bu simli görür və biz 123CS koyarsanız Eminim - Bu ilk simli görür, o, bir tam və ya nömrəni oxumaq üçün çalışır. Bu halda 123CS görür. "Bir tam kimi mənada etmir ki, mən yalnız 123-hesab gedirəm." 123 Beləliklə + 50 173 olacaq. Və burada bir tam kimi bu oxu başlayır. Bu bir şey görmür, bu, yalnız 0 kimi yanaşır belə. 0 Beləliklə + 50 50 olacaq. I hərfinin Ben Bu oxşar bir şey gedir. I 99 düþünüyorum. Bəli, ilk almaq olacaq, çünki - 99 Beləliklə,. Bu C əgər burada (10/7) ki, nə qayıtmaq olar? [Tələbə] 1. 10/7 2 integers ayırıcı çünki >> Bəli, 1 olardı. Bir tam bölünür Bir tam bir tam geri gedir. Bu ki, 1 bal nə geri bilməz, belə ki, yalnız 1 qayıtmaq olacaq. Burada (10/7) çap, bu həqiqətən ki, şərh edəcək. Bu o deməkdir ki, siz həqiqətən kimi tam rounding və stuff etmək istəyirsinizsə siz çap (mərtəbə (10/7)) nə etmək lazımdır; C-ci ildə, siz müntəzəm tam truncation etibar edə bilərsiniz ki, yəqin ki, qəribə deyil lakin PHP siz avtomatik olaraq bir float çevirmək edəcək bilməz. Və sonra (7 + doğru); siz olacaq nə düşünürsünüz? 1 kimi doğru şərh edəcək, mən 8 təxmin edirəm. O 8 var kimi görünür. Biz siz tamamilə heç vaxt lazımdır son 10 dəqiqə etdiyiniz bir şey idi. Bu ki kodu görəcəksiniz. Bu kimi sadə olmalıdır deyil. Siz 2 dəyişənlər ola bilər, 1 dəyişən bir simli olur və digər dəyişən bir int olmaq olur, sonra birlikdə bu dəyişənlərin əlavə edin. PHP dinamik çap olunur və sizin üçün hər hansı bir növü yoxlanılması deyil, çünki və zəif tipli etibarən və yalnız avtomatik birlikdə bu şeyi atmaq çünki və hər şey yalnız işləyəcək, o, hətta bu dəyişən artıq bir string olmalıdır ki, bilmək çətindir Mən bir tam olan, bu dəyişən əlavə olmaz. Bir dəyişən bir string əgər yaxşı təcrübə, əbədi bir string kimi saxlayın. Bir dəyişən bir int deyil, əbədi bir int kimi saxlayın. Siz integers və strings ilə məşğul istəyirsinizsə siz varsint istifadə edə bilərsiniz - bu JavaScript var. Intval. Mən bu bütün vaxt, zaman edin. PHP və JavaScript Mən hər şeyi qədər qarışdırılır. Belə intval dəyişən və tam dəyəri geri gedir. Biz "çap (intval ('123 ')) qəbul edin, siz 123 almaq. Intval özü yalnız bir tamsayı ki, bizim üçün çek etmək niyyətində deyil. PHP dərslik, yalnız bir çox funksiyaları, mövcud var belə ki, burada nə mən istifadə ki, ilk is_numeric olduğunu düşünürəm. I yalan geri ki, təxmin edirəm. Yəni === olduğunu artıq getmək üçün başqa şey. Belə is_numeric ('123df "), bu kimi is_numeric hesab deyil. C siz bütün simvol üzərində təkrarlamaq lazımdır və hər bir xarakter rəqəmli və ya hər hansı əgər kontrol edin. Burada is_numeric, bizim üçün bunu edir və bu yalan qaytarılması oldu. Mən ki, çap zaman, o, belə burada görmək müqayisə edirəm, heç bir şey çap siz saxta olması oldu? Və indi 1 çap edir. Göründüyü əvəzinə doğru əsl çap doğru 1 görüntüler. I print_r əgər görəsən. Xeyr, bu, hələ 1 etmir. === Geri Going, == hələ mövcud və Tommy danışmaq əgər o demək lazımdır == mükəmməl yaxşı. I == dəhşətli və siz == istifadə etməməlisiniz ki, gedirəm. Fərq == şeyi müqayisə ki, onlar eyni tipli deyilik olsa belə, bu, doğru ola bilər, === şeyi müqayisə və ilk çek eyni tipli onlar? halbuki Bəli. OK, indi onlar həqiqətən bərabər müqayisə görmek üçün gidiyorum. Siz 10 kimi qəribə şeylər bərabərdir almaq - deyir ki, nə edək. Belə ki, ('10 '== '1 E1'); Bu doğru qayıdır. Hər kəs bu doğru qaytarır nə üçün guesses varmı? Bu, sadəcə bu barədə deyil. Bəlkə bu bir işarə edir. Amma bir f dəyişə əgər - bu darn! Mən ikiqat quotes istifadə edin. Mən ikiqat quotes bu gətirdik çünki ikiqat quotes mənə böyle olunur səbəb olur. Mən burada ikiqat quotes xilas edə bilər, ancaq tək quotes asan edir. Belə ki, ('10 '== '1 f1'); əsl çap deyil. ('10 '== '1 E1'); doğru görüntüler. [Tələbə] bu hex mı? >> Bu hex deyil, onu kimi ki, yaxın - 1e1, elmi notation. Bu 1 1e1 tanıyır * 10 ^ 1 və ya nə. Həmin bərabər integers var. Biz === Əgər o, yalan olacaq. Biz əgər Mən, həqiqətən, heç bir fikrim yoxdur == nə (10 və '10abc) haqqında;? Bütün hüquqlar. Belə ki, doğrudur. Və bu, 20 olacaq; Belə ki, yalnız siz (10 + '10abc ") idi zaman istəyirəm burada (10 == '10abc '); doğrudur. Hətta pis şeylər (yalan == NULL) var; doğru və ya (yalan == 0); doğrudur, (yalan == []); Və qəribə hallar var - Yəni bu qəribə hallar biridir. Qeyd edək ki, (yalan == []); doğrudur. ('0 '== False); doğrudur. ('0 '== []); Yalan. Belə == keçid heç bir yol var. , bir b bərabər ola bilər və c bərabər ola bilər lakin b c bərabər ola bilər. Mənə bir iyrənc, və həmişə === istifadə etməlidir. [Tələbə] biz bilərsiniz! == Həmçinin? >> [Bowden] Bəli. Ekvivalent olacaq! = Və! ==. Bu əslində pset spec qədər gətirilir Ü funksiyaları geri bir çox - PHP dərslik bu barədə yaxşıdır. Bu, "bir səhv var, bu saxta qayıdacaq"., Böyük qırmızı qutusuna qoyur Amma qaytarılması 0 qayıtmaq üçün mükəmməl ağlabatan şey deyil. Bir tam dönməsi gözlənilir hər hansı bir funksiyası barədə düşünün. Gəlin bu funksiya bir fayl və ya bir şey xətlərinin sayını ehtimal olunur deyirlər. Normal şəraitdə, bu funksiya bir fayl keçmək və xətlərin sayı təmsil edən bir tam geri olacaq. Fayl yalnız boş Belə 0 mükəmməl ağlabatan sayı. Siz yalnış fayl keçir və əgər Amma funksiyası yalan qayıtmaq üçün nə olur siz yalnış fayl keçmək əgər? Siz yalnız Əgər == yalnış fayl və boş fayl arasında halda fərqləndirici deyilik. Həmişə === istifadə edin. O bütün var. PHP-ci ildə, array növü C. istifadə etdiyiniz fərqli Bu növü array olduğunu gördükdə Həqiqətən, siz artıq bu yuxarıda qeyd ola bilər. Bu bracket sintaksis PHP yeni versiyası olan PHP 5.4, kimi yeni. > 1, 'b' - -> 2 Bu əvvəl həmişə ('bir' array yazmaq idi. Bu bir sıra üçün konstruktor idi. İndi PHP nəhayət, yalnız kvadrat mötərizələrin gözəl sintaksis ətrafında gəlib olan serialın yalnız çox yaxşıdır. Lakin PHP 5.4 nəzərə alaraq, yeni versiyası hətta PHP 5.3 olmayan yerlərdə qarşılaşa bilər. PHP 5.3 biz cihaz haqqında nə olduğu yay ərzində biz bu məsələ qaçdı lakin biz bütün grade kitab yerləşən və təqdim və bütün stuff ki server PHP 5.4 idi. Bu bilmədən, biz 5,3 inkişaf, 5.4 basdı və indi kodu ani heç bütün işləri 5.3 və 5.4 arasında dəyişikliklər olub orada baş çünki backwards uyğun olmayan, və biz getmək və PHP 5.4 üçün iş deyil ki, hər şeyi düzeltmek üçün var. Aracın yoxdur-ci ildən bu sinif üçün, PHP 5.4 var, bu kvadratşəkilli mötərizələri istifadə mükəmməl gözəl var. Amma internet ətrafında şeyi arıyorsanız, siz array stuff bir növ qədər arıyorsanız, çox güman görmək olacaq PHP bəri ki, ildən array konstruktor sintaksis həyata yazım anadan olub və kvadrat mötərizə sintaksis son bir neçə ay ətrafında olmuşdur və ya istənilən 5.4 ətrafında gəldi. Bu necə göstəricisidir. Just C kimi necə $ array [0] $ array [1], $ array [2] kimi köşeli parantez ilə indeksi ki, siz index sizin göstəriciləri strings olan var nə, eyni yolu. Beləliklə $ array ['bir'] və $ array ['b']. $ Array [b]. Niyə bu yanlış olardı? Bu yəqin ki, bir xəbərdarlıq yaratmaq lakin hələ də işləyəcək. PHP buna çalışır. Bu, sadəcə, "mən bu barədə sizə xəbərdarlıq gedirəm çalışır, amma yalnız davam gedirəm "Və mən nə yoxdur." Bu, yəqin ki, bir string Bu tərcümə edəcək ancaq keçən kimsə müəyyən məqamda bildirib ki, mümkün "HELLO WORLD" üçün b müəyyən edir. Belə ki, indi b daimi və $ array ola bilər [b] əslində 'Salam Dünya "məşğul olacaq. Mən bu nöqtədə hesab edirəm ki, və ya ən azı bizim PHP parametrləri bir sıra daxil index cəhd və əsas yoxdur, bu, uğursuz olur. Mən yalnız xəbərdar düşünmürəm. Yoxsa yalnız xəbərdar deyil ki, ən azı siz bilərsiniz, yalnız düz bilmir. Həqiqətən belə bir göstərici olduqda kontrol yolu isset edir. Belə isset ($ array ['HELLO WORLD']) yalan qayıdacaqlar. isset ($ array ['b']) doğru qayıdacaq. Bu syntaxes mix edə bilərsiniz. Biz test edə bilərsiniz - nə bu array olan son etsinlər olduqca əminəm. Oh, mən PHPWord lazımdır. Bu əsas nə daxil olduğu sintaksis qarışdırmaqla olunur və əsas nə daxil deyil. Belə ki, burada 3 doğru bir dəyərdir. Siz açıq-aydın əsas olacaq nə edib. Siz onun əsas olacaq nə düşünürsünüz? [Tələbə] 0. >> Edirəm ki, biz müəyyən deyil ilk biri yalnız 0 təxmin edirəm. Biz, həqiqətən, bu hallarda bir neçə edə bilərsiniz. Belə print_r recursive çap edir. Bu bütün array çap olunacaqdır. Hansı var idi, əgər serialın subarrays çap olardı. Belə print_r ($ array); php.test.php. Bu 0 verdi kimi baxmaq deyil. Burada unutmayın bir şey həqiqətən var, amma ikinci onu geri almaq lazımdır. Amma nə bu göstərici 1 etmək üçün nə lazımdır? PHP, simli indeksləri və tam göstəriciləri arasında fərq deyil Bu nöqtədə mən yalnız bir göstərici 1 müəyyən etdik və mən də $ array [1] və $ array ['1 '] edə bilərsiniz və həmin indeksi və eyni əsas olacaq. Belə ki, indi siz 3 olacaq nə düşünürsünüz? >> [Tələbə] 2. >> [Bowden] I 2 təxmin edirəm. Bəli. Bu 2 var. Biz bu 10 idi, bu 4 nədir? 3 göstəricisi olacaq nə düşünürsünüz? Mən 11 düþünüyorum. PHP nə kimi mənim guess - və mən əvvəl bu gördük edirəm - yalnız bu günə qədər istifadə ən rəqəmli index nə tutar olunur. Bu 3 simli index təyin gedən heç oldu. Bu həmişə rəqəmli index olacaq. Belə ki, 10 olur bu günə qədər təyin edir, ən yüksək biri tutar və 3-11 vermək olacaq. Mən əvvəl dediklərini bu array çap yolu bildiriş. Bu, əsas, 4 əsas, 11 əsas d düyməsi 10 görüntüler. Və ya hətta nə edək - Mən 0 etməmiş tahmin, ancaq çap 1, 2, 3, 4, var. Mən burada keçid əgər? Yoxsa nin əslində bu 2 keçid imkan verir. İndi 2, 1, 3, 4 görüntüler. PHP-nin serialların yalnız müntəzəm hash table kimi deyil. Bu hash masalar zamanı 99% kimi hesab mükəmməl ağlabatan deyil. Lakin hash masalar şeyi daxil edilmiş qaydada heç bir mənada var. Belə ki, sizin hash table onu daxil kimi yoxdur əlaqədar siyahısı və bir bağlı siyahı ərzində hökm bilər güman birinci daxil edilib. Amma biz burada ilk 2 daxil və 2 birinci gəlir ki, bu array həyata çap zamanı bilir. Bu, yalnız hər hansı bir qaydada çap deyil. Istifadə etdiyi texniki data structure bir sifariş xəritəsi edir belə dəyərlərə düymələri eşler və bu düymələri daxil edilmiş qaydada xatırlayır. Əsasən bu, həqiqətən üçün annoying olduğu bəzi çətinliklər var - Gəlin bir sıra 0, 1, 2, 3, 4, 5 var demək və index 2 çıxarmaq istəyirik. Bunu bir yolu kimi görünür nə edək. 0, 2, 1, 3, 4. Unset dəyişənlərin və array göstəriciləri həm unset olur. Belə unset ($ array [2]); İndi nə kimi baxmaq olacaq? 2 yalnız getdi, belə ki, mükəmməl gözəl var. Şeyi həqiqətən bir sıra kimi olmaq istəyirsinizsə daha annoying edir. Mən təsadüfi nömrələri qoymaq lazımdır. İndi mənim göstəriciləri bilərsiniz. 1 - Mən bunu 0 uzunluğu gedir harada bir C array kimi olmaq istəyirəm və mən kimi artıq təkrarlamaq olar. Amma Mən index 3-nə ikinci indeksi unset kimi indi index 2 olmaq deyil. Bunun əvəzinə, yalnız index qaldıran və indi 0, 1, 3, 4 gedin. Bu mükəmməl ağlabatan deyil. Bu yalnız annoying və siz array splice kimi şeylər var. Bəli. [Tələbə] Siz loop üçün olsaydı nə olardı və bütün elementləri artıq getmək istəyirdi? 2 hit zaman, heç verə bilər? Bir sıra üzərində Iterating. Siz bunu edə bilər 2 yol var. Siz loop üçün müntəzəm istifadə edə bilərsiniz. Bu PHP bir intricacy edir. Ən çox dil, deyərdim ki, uzunluğu və ya len və ya bir şey bir növ var bir sıra müddəti göstərilməklə. PHP bu sayı var. Belə ki sayı ($ array); $ i + +) Gəlin yalnız çap ($ array [$ i]); Notice: Undefined offset: 2. Bu, sadəcə uğursuz olacaq. Bu çox hissəsi üçün, bu kimi bir sıra üzərində təkrarlamaq lazımdır heç vaxt ki, səbəb olur. Bu şişirtmə ola bilər, ancaq bu kimi bir sıra üzərində təkrarlamaq lazımdır, heç vaxt PHP yerləşir foreach ($ array kimi $ maddə) onun foreach sintaksis təmin edir, çünki. İndi biz ($ maddə) çap edildikdə; - we'll ikinci müzakirə - mükəmməl gözəl işləyir. Foreach iş ki, yolu ilk dəlil sizə iterating etdiyiniz sıra edir. Və loop üçün hər bir keçid vasitəsilə ikinci dəlil, maddə, bu array növbəti şey etmək olacaq. Belə ki, serialın bir sifariş var unutmayın. Loop üçün vasitəsilə ilk dəfə, maddə 123 olacaq sonra 12 olacaq sonra 13 olacaq sonra 23 olacaq sonra 213 olacaq. Siz foreach kimi bir şey nə zaman Things həqiqətən qəribə almaq. Bunu heç vaxt, çünki nə görmək edək. Nə əgər biz unset ($ array [1]); Bu yəqin ki, gözlənilir. Bu array üzərində iterating edirik və hər zaman ilk index unsetting edirik. Belə ki, index 0, ilk şey, maddə dəyər 0 qalır, belə ki, 123 olacaq. Lakin daxili və loop üçün biz unset indeksi 1, belə ki, 12 getdi deməkdir. Belə ki, çap. PHP_EOL. PHP_EOL yalnız newline, lakin texniki cəhətdən daha portativ var Windows newlines Mac və UNIX haqqında newlines fərqli göstərir. Windows newline \ r \ n, hər yerdə başqa isə yalnız \ n çevrilir edir. Sizin sisteminin newline nə edir ki, PHP_EOL yapılandırılmış. Belə ki, çap. Sonunda ($ array) print_r deyil edək. Hesab edirəm ki, davranış olardı ki, yox idi. Biz heç array onu var əvvəl 12 unset baxmayaraq maddə hələ dəyəri 12 edir. Bu mənim söz almaq, lakin foreach serialın bir surəti yaradır kimi görünür etməyin və sonra maddə ki, surəti bütün dəyərlər qalır. Siz loop üçün daxili array, dəyişdirmək Belə ki, hətta o qayğı deyil. Satış orijinal dəyərlər keçiriləcək. İT unsetting cəhd edək. Bu $ array [1] Əgər = "salam"; Biz massivinə "salam" qoymaq baxmayaraq, maddə dəyər qalır, heç vaxt. Loops foreach başqa bir sintaksis var burada bir arrow ayrılmış 2 dəyişənlərin qoydu. Bu ilk dəyişən ki, dəyəri əsas olacaq və bu ikinci dəyişən eyni dəqiq maddə olacaq. > 1 - Bu burada maraqsız, lakin biz bir 'bizim orijinal halda geri əgər olunur 'B' -> 1, biz yalnız maddə kimi hər array üçün təkrarlamaq əgər burada maddə hər dəfə 1 olacaq. Amma biz də maddə ilə bağlı əsas bilmək istəyirsinizsə > $ maddə - sonra biz $ əsas yoxdur. .: "İndi biz çap ($ açar edə bilərsiniz. İndi artıq iterating və hər bir əsas və əlaqədar dəyər çap edir. Biz foreach loops nə edə bilər bir əlavə şey bu sintaksis görə bilərsiniz. Dəyişən adları əvvəl Ampersands PHP istinadlar yoxdur necə olur. Istinadlar göstəricilərinə çox oxşardır, harada siz göstəricilərinə yoxdur, belə ki, birbaşa yaddaş ilə məşğul heç vaxt. Amma 1 dəyişən bir dəyişən kimi eyni şey aiddir yerləşir istinadlar var. Burada Inside maddə $ nə edək. Nin 1, 10 geri edək. Maddə $ nə edək + +; Bu hələ PHP mövcuddur. Siz hələ + + edə bilərsiniz. php.test.php. Mən bunu çap var. print_r ($ array); Biz 2, 11 çap. (Maddə $ dollar array) Mən yalnız foreach etdiyi Əgər maddə dəyəri 1 olacaq loop vasitəsilə ilk dəfə. Bu 2 1 arttırmayı və sonra tamamlayın. Belə ki, o, loop ikinci keçid vasitəsilə gedəcək və maddə 10-dir. Bu əlavələr 11 maddə, sonra yalnız üz atılır ki. Sonra print_r ($ array) və qoy bu, 10 yalnız 1 görürük. Beləliklə, biz etdi artım itirilmişdir. Amma foreach ($ array kimi & $ maddə) indi bu maddə burada bu hüququ eyni maddə. Bu eyni şey. Beləliklə $ maddə + + array 0 değiştirmeyle edilir. Ümumiyyətlə, siz də $ k edə bilərsiniz -> $ maddə və $ edə array [$ k] + +; Bunu başqa bir yolu Belə ki, biz, maddə dəyişdirmək üçün pulsuz lakin bizim orijinal array dəyişdirmək olmaz. Biz əsas olan k, istifadə Lakin, sonra massivinə yalnız index əsas istifadə edərək biz edə və arttırmayı. Bu birbaşa orijinal array değiştirir. Nədənsə siz dəyişdirmək imkanı istəyirdi əgər Siz hətta bunu edə bilərsiniz - Əslində, bu mükəmməl ağlabatan deyil. Siz array $ yazmaq üçün istəmədiyini [$ k] + +, yalnız + maddə $ yazmaq istədim + ancaq hələ demək istəyirdi əgər ($ k === 'a') sonra maddə arttırmayı və sonra array çap. Belə ki, indi biz print_r nə gözləyirsiniz? Hansı dəyərlər çap etmək lazımdır? [Tələbə] 2 və 10. >> Əsas idi [Bowden] Yalnız 'bir' biz həqiqətən ki, çap etmirlər. Siz yəqin ki, çox nadir hallarda, əgər heç, PHP funksiyaları müəyyən etmək lazımdır siz funksiyası nə kimi bir funksiyası müəyyən Ü ancaq bənzər bir şey görə bilərsiniz. Adətən siz demək (foo $ $ bar) və sonra nə olacaq, onu müəyyən olacaq. Bunu isə, o, nə olursa olsun çağırır o deməkdir ki, baz çağırır nə olursa olsun, dəyişdirilə bilər ilk arqument baz keçdi belə. $ Foo nə edək + +; və daxili burada baz ($ maddə) nə edək; İndi biz bir funksiyası zəng. Bu arqument arayış qəbul edir, bu o deməkdir ki, biz bunu dəyişdirmək əgər biz da qəbul edilmiş şey değiştirmeyle edirik Biz gözləyirik bu çap - Mən sintaksis qədər messed halda - biz, 2, 11 var belə ki, həqiqətən incremented edilib. Biz 2 yerlərdə istinadlar ehtiyac görürsünüz. Mən bunu əgər? Bu nə deməkdir? [Tələbə] Bu dəyişəcək. >> Bəli. Satış yalnız sıra dəyəri surəti. Belə ki, maddə 2 dəyişəcək, lakin array ['bir'] hələ 1 olacaq. Yoxsa nə mən bunu əgər? İndi maddə baz bir surəti kimi göndərilir. Belə ki, mübahisə surəti, 2 incremented olunacaq lakin maddə özü 2 incremented heç vaxt. Və maddə, dizi bracket hər hansı eyni şey ki array incremented heç vaxt. Belə ki, həmin yerlərdə də lazımdır. PHP adətən bu barədə olduqca ağıllı deyil. Mən istinadən keçmək istəyirəm hesab bilər - Bu əslində psets biri bir sual idi. O, belə bir questions.txt şey Niyə istinadən bu struct keçmək istəyirəm bilər? Ki, cavab nə idi? [Tələbə] Siz böyük bir surəti yoxdur ki. >> Bəli. A struct özbaşına böyük ola bilər, və siz bir arqument kimi bu struct keçmək zaman bu funksiya üçün keçmək üçün bütün struct surəti lazımdır yalnız istinad edərək struct keçmək əgər halbuki sonra yalnız funksiyası arqument kimi 4-byte ünvanı surəti lazımdır. PHP asan ki, daha bir az deyil. Mən bəzi funksiyası var və mən 1000 şeyi bir sıra keçmək varsa, ki, o hər şeyi 1000 surəti var olacaq deməkdir funksiyası onu keçmək üçün? Bu dərhal bunu mövcut deyil. Bu funksiya daxilində faktiki foo düzəliş, heç vaxt varsa, doğru geri ($ foo === 'salam') əgər. Biz, həqiqətən, bu funksiyasının arqument daxili redaktə heç edək, olan foo sitemizi lazımdır heç kimi nə keçdi o deməkdir ki, onu dəyişmək deyil, çünki. Beləliklə, PHP işləri dəlilləri yolu həmişə arayış qəbul edilir həqiqətən bu dəyişməyə cəhd qədər. I $ foo + + demək əgər İndi, indi orijinal foo surəti və surəti dəyişdirmək edəcək. Bu, bəzi zaman saxlayır. Bu kütləvi array toxunan heç edirsinizsə, həqiqətən, bu, dəyişdirmək heç vaxt o, çıxarmaq lazım deyil biz yalnız hətta surəti deyil o deməkdir ki, bu işareti qoymaq əgər halbuki siz onu dəyişdirmək bile. Bu davranış surəti-on-yazma adlanır. Siz bir əməliyyat sistemi kurs xüsusilə, digər yerlərdə görəcəksiniz. Copy-on-yazma siz bir şey çıxarmaq lazım deyil bir olduqca adi nümunəsidir faktiki değişen halda. Bəli. Əgər test daxilində artım var [tələbə] Nə əgər belə 1,000 yalnız 1 element dəyişdirilə lazımdır? Mən əmin deyiləm. Mən bunu bütün şey surəti olardı, lakin bu kifayət qədər ağıllı deyil mümkündür - Əslində, nə mən düþünüyorum ki, bu kimi görünür ki, bir sıra var idi təsəvvür edir: $ array2 = [ Sonra index 'a' [1 2 3 4], və index 'b' bir sıra nə bir sıra edir. Mən o bütün arasında virgül lazımdır. Vergülləri var düşünün. Daha sonra 'c' dəyəri 3. Okay. İndi qoy biz $ baz ($ array2) nə demək; Ü baz istinadən bu daşımır. Beləliklə $ foo ['c'] + +; Bu bir arqument kimi array2 keçən belə bir nümunə və sonra bu incrementing tərəfindən array xüsusi index değiştirmeyle edilir. Mən vicdanla PHP edəcəyimiz nə heç bir fikrim yoxdur. Bu asanlıqla bütün şey surəti edə bilər, lakin ağıllı əgər bu onun fərqli dəyər olacaq bu açarları surəti edəcək lakin bu hələ də eyni array 1,2,3,4 qeyd edə bilərsiniz və yenə də eyni array qeyd edə bilərsiniz. Mən iPad o yatıracağız. Biz, [1,2,3,4] üçün, bu oğlan bal 3 Bu array bu oğlan bal keçmək Bu oğlan bal [34, ...] İndi baz üçün bu keçən edirik ki, biz bu değiştirmeyle edilir. PHP smart deyil, yalnız bunu edə bilərsiniz - Biz hələ bir yaddaş surəti idi, lakin bu böyük nested subarrays varmış biz o surəti lazım deyildi. Ki, nə var, mən bilmirəm, amma bunu təsəvvür edə bilərsiniz. Bu da PHP üzərində C olduqca böyük üstünlükdür. PHP həyat çox asan çox şey üçün, edir ancaq cür o çıxış edəcək necə heç bir fikrim yoxdur o şeyi bu nüsxə edilməsi zamanı mən başlıq altında heç bir fikrim yoxdur, çünki, oh, bir daimi zaman surəti olacaq, yalnız 1 göstərici dəyişə gedir, bir ridiculously çətin xətti surəti olacaq? Bu yer tapa bilmir, ne olur? Sonra bir daha yer almaq zibil toplama run lazımdır mı? Və zibil toplama özbaşına uzun bilər. C siz bu şeylər barədə narahat yoxdur. Əgər yazmaq hər bir xətt onu yerinə gedən haqqında olduqca çox səbəbi ola bilər. Nin bu geri nəzər salaq. Ki, siz hash funksiyaları ilə məşğul olmayan necə gözəl bağlı siyahıları, və ya kimi bir şey? Hash masaları ilə iş indi asan olduğundan, burada işləmək üçün bir fun puzzle edir. Unique.php və adlı bir fayl açmaq bir PHP proqram yazmaq (Həmçinin "script" kimi tanınır). Onlar sizə command line çalışır ki, qısa şeyi əgər Biz onlara scripts zəng edirlər. Ümumiyyətlə, siz tərtib etmir ancaq yürütülebilir run olacaq hər hansı bir dil command line, siz çalıştırılabilir script zəng edə bilərsiniz. Mən həmçinin, bu ki, bir C proqram yazmaq bilər Mən ilk tərtib və sonra ikili run bəri ancaq bir script demirik. Amma bu PHP proqram bir script zəng olacaq. Yoxsa biz Python və ya Perl və ya Node.js və ya o şeyi heç onu yazdığı halda, Siz command line onlara run çünki biz onlara bütün scripts zəng istədiyiniz lakin biz onları tərtib etmir. Biz olduqca tez bunu bilər. Biz argv istifadə etmək niyyətində deyil. Bu vasitəsilə zərbə yalnız edək. Bu unikal zəng, proqram yazın. Siz daxil satır başına bir söz ehtiva edir söyləyə bilərik. Əslində, argv istifadə olduqca mənasız olacaq. unique.php. Ilk şey ilk, biz 1 komanda-line dəlil qəbul olunub yoxlamaq istəyirəm. Siz C argc və argv bekleneceği kimi, biz hələ PHP bu var. Beləliklə mən bir mesaj və ya bir şey çap məşğul olmayacaq ($ argc! == 2) əgər. Mən sadəcə, 1 hata kodu çıxmaq lazımdır. Mən də 1 qayıtmaq bilər. Biz olduğunuz nadir hallarda PHP Bu dövlət var - Adətən bir funksiyası adlı funksiyası adlı funksiyası adlı funksiyası istəyirik. Və bir şey yanlış gedir və yalnız tamamilə hər şey çıxmaq istəyirsinizsə, exit yalnız proqram başa çatır. Bu da C. var Bir funksiyası bir funksiyası bir funksiyası bir funksiyası danışırsınızsa və yalnız proqram öldürmək istəyirsinizsə, siz çıxış zəng edə bilərsiniz və yalnız çıxış edəcək. Lakin PHP biz bu üst səviyyədə olduğunu daha nadir deyil. Adətən biz funksiyası bir növ daxili istəyirik, biz exit zəng biz sonra həyata keçirir, 1 şey qayıtmaq yoxdur ki, səhv var bir səhv var idi tanısa belə qədər qaytarır. Biz (1) çıxmaq ki, məşğul etmək istəmirəm; qaytarılması (1), bu halda ekvivalent olacaq. Sonra açmaq istəyirəm nə biz fopen istəyirəm. Arqumentləri olduqca benzer edir. Biz fopen ($ argv [1], və biz oxumaq üçün onu açmaq istəyirəm. Istəyirəm Biz f zəng olacaq bir resurs qaytarır. Bu Resim * Cavab yoxdur istisna olmaqla, C bunu necə olduqca oxşar görünür. Əksinə biz yalnız $ f deyirlər. Okay. Əslində, bu da bizə fayl adlı PHP funksiyası kimi bir işarə verir edirəm. PHP Faylın. Bu nə edir bir sıra daxil bütün fayl oxumaq edir. Siz hətta fopen buna ehtiyac yoxdur. Bu sizin üçün bunu edəcək. Beləliklə $ xətləri = fayl ($ argv [1]); İndi faylı xətləri bütün xətləri var. İndi biz xətləri sort istəyirəm. Necə xətləri düzmək olar? Biz xətləri sort. İndi biz onlara və ya hər hansı çap edə bilərsiniz. Yəqin ki, asan yol foreach ($ line $ kimi xətləri) line $ echo edir; [Tələbə] biz hətta cür bir şey sened tərəfindən xətləri keçmək olmaz? Sort funksiyası sort (& $ array) kimi müəyyən olunacaq yerdir. Siz funksiyası zəng zaman istinadən onu keçmək yoxdur. Bu sened kimi qəbul kimi müəyyən funksiyası var. Bu yanlış getdi nə dəqiq əslində biz 5,3 5,4 gedəndə biz server hər şey qoymaq zaman. 5.4 qədər, bu mükəmməl ağlabatan idi. Funksiyası istinad kimi onu gözləmir, lakin istinad kimi keçə bilər funksiyası bu dəyişdirmək üçün baş verir, belə ki, bu, hələ redaktə edir. 5.4 ki, siz bunu nəzərdə deyilik. Funksiyası aydın o əgər indi siz istinad keçmək yeganə yoldur. Onu dəyişdirmək istəmirsinizsə, onda $ surəti = $ xətləri və pass surəti etmək lazımdır. Belə ki, indi xətlərinin mühafizə olunacaq və surəti dəyişdiriləcək. php.unique.php. Mən bir şey messed ola bilər. Gözlənilməz 'növ. Bizim üçün bu ki, bir şey var olacaq. Bu da yoxdur. Siz ilk arqument bir sıra olacağı gözlənilir ki, dərslik oxumaq zaman edək və arayış ilə qəbul edir. Niyə bu mənə şikayət edir? Mən istəmirəm ki, burada hələ də bu funksiya sort var. OK, php.unique.php. Mən bir fayl yoxdur, çünki mən bir dəlil keçmək vermədi. Bu test.php haqqında php.unique.php var. Burada bütün gözəl sıralanır üçün çap test.php edir. Sıralanır üçün kod fayl cür qəribə olduğunu edək bizim boş xətləri bütün ilk gələcək, çünki sonra 1 səviyyəli indentations bütün gəlməyə davam edir sonra heç bir indentations bütün gəlir. Bəli. >> [Tələbə] Belə ki, mənbə kodu üçün istinad qəbul deyil? Ki, ümumiyyətlə dəyəri ilə qəbul edilir? [Bowden] bir funksiyası zəng zaman, bu istinadən qəbul edilmiş olub, heç vaxt. Bu arayış qəbul edilib-edilməməsi müəyyən funksiyası müəyyən edir. Və sort funksiyası müəyyən baxaraq və ya yalnız bu baxaraq, bu istinadən mübahisə edir. Beləliklə, asılı olmayaraq siz istinadən onu istəyirəm olub ki, nə istinadən onu. Bu yerdə array değiştirir. Bu yalnız icazə verilmir. Bunu etmək üçün icazə deyilik. >> [Tələbə] Oh, tamam. [Bowden] Bu, sort istinadən xətləri almaq və dəyişdirmək niyyətindədir. Siz bunu istəmədi əgər yenə, siz növ surəti edə bilər. Hətta bu halda, surəti həqiqətən xətləri surəti deyil. Ilk redaktə olur qədər yalnız, eyni şey göstərir harada ilk sıralama funksiyası redaktə almaq olacaq yerləşir, çünki onun surəti on-yazmaq, indi surəti surəti ediləcək gedir. Siz də bunu edə bilərsiniz. Siz işareti görə bilərsiniz digər yer var. Siz foreach loops görmək, siz funksiyası bəyannamələrin görmək yalnız dəyişənlərin təyin zaman və bunu görürük. İndi biz bu etməklə heç bir şey başa var surəti və xətləri sanki eyni şey var çünki. Siz xətləri istifadə və əvəz kopyalaya bilərsiniz. Və unset xətləri deyil; Siz unset ($ surəti) edə bilər yalnız eyni şey üçün istinad itirirlər. Yəni bu nöqtə kimi, indi xətləri xətti əldə edə bilərsiniz yeganə yoldur. Suallar? Bəli. Tamamilə mövzu off [tələbə], lakin siz ilə PHP yaxın yoxdur - Siz yoxdur. >> Okay. [Bowden] onları yaxın pis təcrübə var demək kimi uzaq getmək olar. Bu, xüsusilə skript, yəqin ki, şişirtmə var amma bunu ne olur görmək edək. Yəni heç bir şey etmədi. Mən istəyirdim nə varsa - [Sighs] Mən bir dəlil keçmək lazımdır. Shoot. Mən bunu yanlış adlandırıb. Bir arqumenti ilə Beləliklə php.unique.php. İndi hətta bu lazım deyil. Mən bir etibarlı dəlil keçmək lazımdır. Bu çap var nə çap. Mən surəti çap alıram və surəti yoxdur. Xətləri belə. O, hər şeyi çap və sonra burada, bütün bu junk qeyd PHP bir şey ki, PHP tags kənarda olduğundan yalnız sözün çap edir. Niyə HTML ki, mən div blah, blah, blah sinif və ya nə olursa olsun, nə edə bilər ki, gözəl sonra blah, blah, blah, bəzi PHP kodu etmək və sonra son div yoxdur. İndi, mən top mənim gözəl div almaq hər şey bu çap ki, PHP çap, alt div. Bu kimi bir şey olur fəlakətli olan, olduqca ümumi fayl altında yalnız bir sokak newline. Siz bir müqavilə ki, böyük olardı deyil Əgər brauzerlər ilə faktı nəzərə qədər - Necə iş yönləndirən və ya əsasən hansı mövzular iş, bir saytına keçid etmək və bütün bu mövzular və hər şeyi geri göndərir zaman cavab 200 və ya cavab yönlendirme və ya hər hansı kimi, data ilk byte göndərilir qədər mövzular yalnız etibarlıdır. Siz dəfə minlərlə yeniden yönlendirme, lakin tezliklə data ilk byte göndərilir bilərsiniz daha yönlendirme ehtimal deyilik. Bir fayl altındakı bir sokak newline varsa və sizə bu funksiyanı istifadə və sonra istədiyiniz deyək - Bu index.php ki başqa bir fayl var deyə bir şey require_once Gəlin - Mən bunu yaxşı nümunə hesab edə bilməz. Alt Bu xətt yankılanacağını aldığında məsələ olur. Siz hələ dəstəklənmişdir üçün bir şey istəmirəm. Siz yankılanacağını olmaq bir şey niyyətində deyil idi, baxmayaraq ki, bir şey yankılanacağını almaq idi və indi siz bir daha mövzular göndərmək ehtimal deyilik və şikayətlərin almaq olacaq. Siz yalnız yekun tags ehtiyac yoxdur. HTML ilə bir şey bunu dair plan varsa - və burada div aşağı etmək üçün mükəmməl ağlabatan var nə və sonra bu nöqtədə Siz və ya onlara daxil edə bilərsiniz. Bu, həqiqətən etməz. Lakin PHP yazıları bu yaxın nadir deyil. Hər şey PHP, tamamilə hər şeyi zaman Siz, həqiqətən, yaxın / siz yaxın olmamalıdır ehtiyac yoxdur. Strings ilə məşğul C. çox daha gözəl olur PHP siz tək və ya cüt quotes ilə bir simli daxil edə bilərsiniz. Single quotes ilə "escape" ardıcıllığı istifadə edə bilməz. Daim, blah, blah, blah xilas. Belə printf PHP çox nadir. Pset 5 sizi sprintf və ya hər hansı istifadə - Mən şey bir növ etmək istəyirdi, mən printf istifadə edir danışarlar. Amma 001.jpg və 002.jpg etmək istəyirəm. Belə şey ki, sort üçün Mən, həqiqətən, Mən printf istifadə ki, mətn format istədiyiniz. Amma başqa yalnız simli concatenation istifadə edir. Mən, həqiqətən, printf istifadə heç vaxt. Biz yalnız bir quotes və ikiqat quotes arasında detalları fərqləndirici edirik. Ən böyük fərq bir quotes, bu sözün çap olunacaq ki. PHP heç char data növü var, C fərqli olaraq, bu bərabərdir belə. Onlar həm strings istəyirik. Və bir quote strings haqqında gözəl şey deyə bilər "Salam dünya!" blah, blah, blah, $ $ Wooo. Mən bu sözün çap edəcək çap ne olur. Bizim məhsulları bütün xilas edək. Beləliklə $ str1 echo; , Dollar əlamətləri: Bu sözün o şeyi bütün çap siz newlines olardı ki backslash n - o şeyi bu sözün görüntüler. Siz qaçmaq lazımdır yalnız bir quotes var başqa, çünki bu, vahid quotes bağlanması oldu edirəm. Cüt quotes, tamamilə fərqli. Biz artıq sintaksis işıqlandırılması haqqında olduqca yanlış getmək nə üçün bizə cluing görürük. php.unique. Undefined variable: wooo bu wooo adlı dəyişən kimi şərh olunur, çünki. Cüt quotes siz daxil dəyişənlər daxil edək - $ Name = "Rob" demək edək; Belə ki, "Salam, mənim ad ad $ deyil!" Səni sevirəm; Bu dəyişən kimi tanıyır. Hesab edirəm ki, axır zaman - və mən bir newline daxil olacaq - Salam, mənim ad Rob deyil! və salam dünya! Mən yuxarıda wooo və çap xaric heç olmasıdır. Edə bilərsiniz 1 addım var. $ Array = [1, 2, 3]; Mən serialın ilk index çap istəyirsinizsə? Siz $ array [0] yoxdur. Bu sintaksis işıqlandırılması bir ipucu edir. Bu nə olacaq? php.unique. Hi, my name 1 deyil! I istədiyini deyil. Sintaksis işıqlandırılması mənə yalan. Gəlin cəhd 'a' -> 1, 'b' -> 2. Yəni yazmaq üçün necə var. Gözlənilməz bir quote (blah, blah, blah, blah, blah T_ENCAPSED). Bu fikir bu serialın bir hissəsi kimi bu tanınması deyil ki. Bu məktubu ilə dizine array kimi tanınması deyil. Siz qıvrım aşırma ilə əhatə bunu istəyirəm və indi bu buruq burğu ilə nə, interpolyasiya olunacaq olan biz magically hüququ yerlərdə bu dəyişənlərin daxil üçün istifadə söz. İndi php.unique, bunu, və Hi, my name 1 deyil! kimi gözlənilir və ya Hi, my name Rob deyil! Vahid quotes haqqında gözəl cür ki, bir şey ki, - Interpolating bəzi dəyəri var. Siz ikiqat quotes istifadə varsa, tərcüməçi, bu simli üzərində getmək üçün var ki, arxayın "Oh, burada dəyişən var. İndi ki, dəyişən almaq və burada daxil getmək lazımdır." Əgər hər hansı bir dəyişənlər istifadə bile, Bu ikiqat quotes daxilində heç bir şey, interpolyasiya lazımdır bu ikiqat quotes artıq getmək lazımdır, çünki hələ də aşağı düşəcək interpolyasiya lazım olan şeylər axtarır. Heç bir şey interpolyasiya lazımdır Belə bir quotes, bir az daha sürətli ola bilər və mən "Salam, mənim adı ', vahid quotes istifadə belə edirlər. $ Array ['bir'] hər halda. Yəni biz əvvəl nə bərabər olacaq. Lakin bu üstünlük bir məsələ var. Siz PHP istifadə edirsinizsə, siz yəqin ki, sürəti fərq haqqında qayğı yoxdur. Ilə başlamaq üçün onları səbəb kifayət qədər deyil. Hər hansı bir final suallar? Biz, həqiqətən, hətta bütün vasitəsilə əldə etməyib, lakin bu malları darıxdırıcı idi. HTML ilə məşğul olduğunuz zaman PHP cür gözəl var ki, son şey ki, Bir dəyişən çap üçün bir az, belə ki, gözəl qısa sintaksis istifadə edəcəyik. Burada PHP qoymadan, bu qısa tags adlanır. Rəsmi PHP 5.4 kimi, bu deprecated edir. Siz php etmək tövsiyə olunur. Bu hələ