1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Ενότητα 8] [λιγότερο άνετα] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Πανεπιστήμιο του Χάρβαρντ] 3 00:00:04,000 --> 00:00:08,000 [Αυτό είναι CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Καλώς ήρθατε στη δεύτερη μας στο τελευταίο τμήμα. 5 00:00:11,000 --> 00:00:13,000 Σε αυτή την εβδομάδα θα πάμε να μιλήσουμε για την PHP, και στη συνέχεια την επόμενη εβδομάδα 6 00:00:13,000 --> 00:00:17,000 θα κάνουμε μια μικρή ανασκόπηση για το Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Εμείς πάμε για να ξεκινήσει στη σελίδα 3 του προβλήματος θέτει το πακέτο, 8 00:00:20,000 --> 00:00:28,000 και θα δουλέψουμε μέσα από την ενότητα των ερωτήσεων αρκετά γρήγορα. 9 00:00:28,000 --> 00:00:34,000 Στη σελίδα 3, αρχίσουμε να μιλάμε για αυτή τη διαφορά μεταξύ C και PHP 10 00:00:34,000 --> 00:00:38,000 με την έννοια ότι η PHP είναι μια δυναμικά δακτυλογραφημένη γλώσσα, 11 00:00:38,000 --> 00:00:42,000 λαμβάνοντας υπόψη ότι η C είναι στατικά πληκτρολογήσει, 12 00:00:42,000 --> 00:00:46,000 και έχει κανείς πολύ γρήγορα κάνει καμία κωδικοποίηση σε κάτι σαν PHP 13 00:00:46,000 --> 00:00:51,000 ή Python ή Ruby πριν, JavaScript; 14 00:00:51,000 --> 00:00:53,000 Εντελώς νέα; Εντάξει. 15 00:00:53,000 --> 00:00:56,000 >> Όλες αυτές οι γλώσσες που μόλις ανέφερα 16 00:00:56,000 --> 00:01:01,000 είναι πολύ διαφορετική από τις γλώσσες όπως η C και η C + + και Java 17 00:01:01,000 --> 00:01:04,000 με την έννοια ότι όταν δηλώνετε μια μεταβλητή δεν χρειάζεται να δηλώνουν 18 00:01:04,000 --> 00:01:09,000 τι είδους μεταβλητή είναι, τόσο σε C είχαμε κολλήσει χρειάζεται να λένε πάντα 19 00:01:09,000 --> 00:01:13,000 αυτό πρόκειται να είναι μια μεταβλητή int, ή αυτό πρόκειται να είναι μια μεταβλητή char *, 20 00:01:13,000 --> 00:01:16,000 ενώ με την PHP, την Python, Ruby με, 21 00:01:16,000 --> 00:01:20,000 με πολλές από αυτές τις πιο σύγχρονες γλώσσες δεν χρειάζεται να το κάνουμε αυτό σε όλα. 22 00:01:20,000 --> 00:01:24,000 Μπορείτε να δηλώσετε μόνο μεταβλητή σας, και στην περίπτωση της PHP 23 00:01:24,000 --> 00:01:28,000 δηλώνετε ότι είναι μια μεταβλητή με το πρόθεμα με ένα σημάδι $, 24 00:01:28,000 --> 00:01:35,000 και στη συνέχεια το είδος της μεταβλητής καθορίζεται από ό, τι αξία θα κρατάει, 25 00:01:35,000 --> 00:01:38,000 η οποία είναι είδος δροσερό. 26 00:01:38,000 --> 00:01:44,000 Για να παίξετε γύρω με αυτό το λίγο, έχουμε δείγμα κώδικα PHP εδώ 27 00:01:44,000 --> 00:01:47,000 στις μεταξύ των ετικετών έναρξης και λήξης. 28 00:01:47,000 --> 00:01:53,000 Είμαστε χρησιμοποιώντας αυτό το είδος, όπως HTML, με την έννοια ότι 29 00:01:53,000 --> 00:01:56,000 έχουμε αυτές γωνία παρένθεση εδώ για να ανοίξει και να κλείσει. 30 00:01:56,000 --> 00:01:58,000 Θα δείτε αυτό με την HTML. 31 00:01:58,000 --> 00:02:03,000 Θα δούμε το ίδιο είδος της σύνταξης με XML πάρα πολύ. 32 00:02:03,000 --> 00:02:06,000 >> Αυτό δείχνει την αρχή ενός PHP μπλοκ. 33 00:02:06,000 --> 00:02:09,000 Αυτό; php είναι ειδικά για PHP. 34 00:02:09,000 --> 00:02:16,000 Κλείνουμε τα πάντα με ένα>, καθώς και. 35 00:02:16,000 --> 00:02:22,000 Ας ανοίξουμε ένα αρχείο στη συσκευή μας με ό, τι θέλετε. 36 00:02:22,000 --> 00:02:25,000 Σε αυτό το πακέτο λέει να καλέσετε dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Στην πραγματικότητα, μπορείτε να καλέσετε ό, τι θέλετε, αλλά το όνομα του αρχείου θα καταλήξει 38 00:02:29,000 --> 00:02:34,000 και είναι σημαντικό αργότερα, έτσι απλά να θυμάστε ό, τι αποκαλούμε. 39 00:02:34,000 --> 00:02:36,000 Πάω να στραφούν πάνω στη συσκευή, 40 00:02:36,000 --> 00:02:43,000 και πάω να κάνω έναν κατάλογο για 41 00:02:43,000 --> 00:02:48,000 κεφάλαιο 9 Πιστεύω ότι είμαστε στο τώρα. 42 00:02:48,000 --> 00:02:51,000 Και θα πάμε στην ενότητα 9, 43 00:02:51,000 --> 00:02:54,000 και είμαι πρόκειται να χρησιμοποιήσετε το gedit. 44 00:02:54,000 --> 00:02:59,000 Ας δούμε, gedit, και Πάω να καλέσετε ορυχείο dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Μέσα dynamic.php, δεδομένου ότι αυτό είναι ένα PHP αρχείο 47 00:03:06,000 --> 00:03:09,000 και θέλω να τρέξει αυτό μέσω του διερμηνέα PHP 48 00:03:09,000 --> 00:03:12,000 Πρέπει να ξεκινήσει από ό, τι με τις ανοικτές ετικέτες, 49 00:03:12,000 --> 00:03:17,000 έτσι είμαι πρόκειται να ξεκινήσει αυτές αμέσως, 50 00:03:17,000 --> 00:03:23,000 δώσω στον εαυτό μου λίγο χώρο μεταξύ των ετικετών, 51 00:03:23,000 --> 00:03:26,000 και στη συνέχεια το σημείο αυτής της άσκησης ήταν να παίζουν με 52 00:03:26,000 --> 00:03:34,000 η λειτουργία αυτή ονομάζεται gettype, έτσι gettype, αυτή η λειτουργία ακριβώς εδώ. 53 00:03:34,000 --> 00:03:38,000 >> Σημειώστε ότι είναι εκεί ή όχι υπογραμμίζουν διάστημα ή παύλα ή κάτι τέτοιο 54 00:03:38,000 --> 00:03:42,000 διαχωρίζει τις 2 λέξεις, και να πάρει τον τύπο, μόνο μια λέξη εντελώς. 55 00:03:42,000 --> 00:03:46,000 Αλλά αυτό που θα κάνουμε είναι αν θα περάσει σε μια μεταβλητή να gettype, 56 00:03:46,000 --> 00:03:51,000 var $ λένε ή $ x, 57 00:03:51,000 --> 00:03:55,000 αυτό θα μου πείτε είδος του σε μορφή αποσφαλμάτωσης 58 00:03:55,000 --> 00:03:59,000 ποιο είναι το όνομα αυτού του τύπου είναι. 59 00:03:59,000 --> 00:04:03,000 Εμείς πάμε για να πειραματιστείτε εδώ. 60 00:04:03,000 --> 00:04:07,000 Συγκεκριμένα, αν κοιτάξουμε πίσω στο spec PSET 61 00:04:07,000 --> 00:04:11,000 έχουμε μερικές διαφορετικές γραμμές κώδικα εδώ. 62 00:04:11,000 --> 00:04:16,000 Στην πρώτη γραμμή του κώδικα που αρχικοποιεί αυτήν τη μεταβλητή, $ var, 63 00:04:16,000 --> 00:04:21,000 να είναι ίσο με 7, και τότε θα έχουμε αυτή την γραμμή printf 64 00:04:21,000 --> 00:04:25,000 που λέει hey, printf var είναι κενή. 65 00:04:25,000 --> 00:04:29,000 Printf είναι ένας από τους πολλούς τρόπους που μπορεί να εκτυπώσει τα πράγματα σε PHP. 66 00:04:29,000 --> 00:04:33,000 Συχνά θα δείτε τη λειτουργία ηχώ που χρησιμοποιείται αντί της printf, 67 00:04:33,000 --> 00:04:40,000 printf αλλά είμαστε όλοι εξοικειωμένοι με έχουν κωδικοποίηση σε C για λίγο. 68 00:04:40,000 --> 00:04:42,000 Τι μπορείτε πραγματικά να κάνετε είναι να δούμε αν τα έργα αντιγραφής και επικόλλησης. 69 00:04:42,000 --> 00:04:46,000 Πάω να δώσει σε αυτό μια δοκιμή. 70 00:04:46,000 --> 00:04:52,000 Θα πάμε πίσω πάνω στη συσκευή. 71 00:04:52,000 --> 00:05:00,000 Εντάξει, και εκεί πάμε. 72 00:05:00,000 --> 00:05:05,000 Και απόσταση είναι λίγο funky, αλλά εδώ πάμε. 73 00:05:05,000 --> 00:05:08,000 Έχουμε αυτόν τον κώδικα εδώ. 74 00:05:08,000 --> 00:05:11,000 >> [Φοιτητικό] Δεν είναι καλό στυλ στην καρτέλα αυτό; 75 00:05:11,000 --> 00:05:13,000 Συγνώμη; 76 00:05:13,000 --> 00:05:15,000 [Φοιτητικό] Είναι συμβατικά στην καρτέλα αυτό; 77 00:05:15,000 --> 00:05:21,000 Σωστά, έτσι Sam ρωτά αν είναι σύμβαση για την καρτέλα ή όχι. 78 00:05:21,000 --> 00:05:23,000 Συνήθως ναι. 79 00:05:23,000 --> 00:05:26,000 Σε αυτή την περίπτωση έχω επιλέξει να μην. 80 00:05:26,000 --> 00:05:33,000 Ειλικρινά, θα δείτε διαφορετικά πράγματα μεταξύ των διαφόρων προγραμματιστές. 81 00:05:33,000 --> 00:05:40,000 PHP είναι συνήθως χρησιμοποιείται συχνά σε συνδυασμό με την HTML 82 00:05:40,000 --> 00:05:45,000 και σε άλλες γλώσσες, και έτσι μερικές φορές η εκτύπωση θα δούμε μια μικρή funky 83 00:05:45,000 --> 00:05:50,000 αν σε περίπτωση PHP tags αρχής και τέλους. 84 00:05:50,000 --> 00:05:53,000 Εξαρτάται πραγματικά. 85 00:05:53,000 --> 00:05:56,000 Στην περίπτωση αυτή, η αντιγραφή και επικόλληση δεν επικολλήστε τις καρτέλες για μένα, 86 00:05:56,000 --> 00:06:02,000 αλλά αυτό σίγουρα, όπως είπατε, να είναι σαφέστερη. 87 00:06:02,000 --> 00:06:06,000 Εντάξει, αν μπορείτε να αποθηκεύσετε τον κωδικό αυτό σε dynamic.php 88 00:06:06,000 --> 00:06:10,000 τότε τι μπορείτε να κάνετε είναι να κατέβει στο παράθυρο του τερματικού σας, όπου είμαι εδώ κάτω δεξιά 89 00:06:10,000 --> 00:06:17,000 στο gedit, και να κάνει το ισοδύναμο της μεταγλώττισης 90 00:06:17,000 --> 00:06:20,000 χρησιμοποιώντας και στη συνέχεια να τρέχει κωδικό σας σε C 91 00:06:20,000 --> 00:06:25,000 Το μόνο που έχετε να κάνετε με το αρχείο PHP είναι εκκίνηση του διερμηνέα PHP, 92 00:06:25,000 --> 00:06:30,000 το οποίο είναι ένα μικρό πρόγραμμα που ονομάζεται PHP, 93 00:06:30,000 --> 00:06:35,000 και το επιχείρημα που δίνετε στον διερμηνέα είναι το αρχείο που θέλετε να ερμηνεύσει. 94 00:06:35,000 --> 00:06:40,000 Σε αυτή την περίπτωση, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Ωχ, πού το έβαλα; 96 00:06:43,000 --> 00:06:52,000 Ω, το έβαλα στο τμήμα 9, και εδώ είμαι. Αυτός είναι ο λόγος. 97 00:06:52,000 --> 00:06:57,000 >> Τώρα, αν τρέξω και πάλι ότι 98 00:06:57,000 --> 00:07:02,000 βλέπουμε ότι στην πρώτη κλήση της συνάρτησης gettype μου 99 00:07:02,000 --> 00:07:04,000 var είναι ένας ακέραιος. 100 00:07:04,000 --> 00:07:12,000 Στο επόμενο var είναι ένα string, και στη συνέχεια, στο τρίτο var είναι ένα boolean. 101 00:07:12,000 --> 00:07:15,000 Τι ενδιαφέρον σχετικά με αυτό είναι αν μετακινηθείτε προς τα πίσω μέχρι βλέπουμε ότι 102 00:07:15,000 --> 00:07:18,000 αυτά είναι τύποι παρόμοιες με αυτές που είχαμε στο C. 103 00:07:18,000 --> 00:07:22,000 Είχαμε ints σε C. 104 00:07:22,000 --> 00:07:26,000 Εμείς είδος είχε χορδές σε C, 105 00:07:26,000 --> 00:07:31,000 έτσι χορδές δεν ήταν εντελώς legit τύπου με την έννοια ότι 106 00:07:31,000 --> 00:07:37,000 CS50 σειρά μας ήταν πραγματικά τι; 107 00:07:37,000 --> 00:07:39,000 Συγνώμη; Δεσποινίς; 108 00:07:39,000 --> 00:07:41,000 [Missy] * Χαρ. 109 00:07:41,000 --> 00:07:43,000 Ναι, αυτό ήταν char * χρησιμοποιήσαμε. 110 00:07:43,000 --> 00:07:47,000 Στην αρχή του εξαμήνου μας χρησιμοποιώντας τον τύπο string, 111 00:07:47,000 --> 00:07:52,000 αλλά αυτό ήταν πραγματικά ένα char * κάτω από την κουκούλα. 112 00:07:52,000 --> 00:07:58,000 Εμείς απλά πληκτρολογήστε ορίζονται, ενώ στην PHP αυτές οι χορδές είναι ένα πραγματικό τύπο. 113 00:07:58,000 --> 00:08:07,000 Δεν υπάρχει περισσότερο από αυτό τον τύπο char * πράγματα. 114 00:08:07,000 --> 00:08:10,000 >> Θα δείτε ότι μπορούμε να κάνουμε πολλά περισσότερα πράγματα με χορδές 115 00:08:10,000 --> 00:08:14,000 πολύ πιο εύκολα από ό, τι σε PHP θα μπορούσαμε σε C, 116 00:08:14,000 --> 00:08:17,000 και, στη συνέχεια, τέλος, έχουμε αυτή την boolean τύπος, και η μεγάλη διαφορά εδώ είναι ότι 117 00:08:17,000 --> 00:08:21,000 αν μετακινηθείτε προς τα πίσω βλέπουμε ότι η ονομασία αυτών των τύπων 118 00:08:21,000 --> 00:08:28,000 τώρα είναι integer, string, boolean και αντί για int και bool, 119 00:08:28,000 --> 00:08:31,000 και όπως μπορείτε να πάρετε διαφορετικές γλώσσες προγραμματισμού, 120 00:08:31,000 --> 00:08:36,000 υποθέτοντας ότι σε κάποιο σημείο στη ζωή σας, θα έρθουν σε επαφή με 121 00:08:36,000 --> 00:08:40,000 διαφορετικά αυτά που θα παρατηρήσετε λίγο ιδιορρυθμίες, όπως αυτό 122 00:08:40,000 --> 00:08:44,000 όπου C καλεί ακέραιους αριθμούς ints. 123 00:08:44,000 --> 00:08:46,000 Μερικοί την αποκαλούν ακέραιοι. 124 00:08:46,000 --> 00:08:51,000 Υπάρχουν άλλοι όροι που θα τρέξει σε. 125 00:08:51,000 --> 00:08:55,000 Big int είδαμε σήμερα στην SQL. 126 00:08:55,000 --> 00:08:59,000 Υπάρχουν, επίσης, τον αριθμό και στη συνέχεια, bool, boolean, 127 00:08:59,000 --> 00:09:03,000 όλα τα είδη των διαφορών εκεί. 128 00:09:03,000 --> 00:09:07,000 >> Αυτό δεν είναι τρομερά ενδιαφέρον, αλλά τώρα είμαι πρόκειται να σας δώσω λίγο χρόνο 129 00:09:07,000 --> 00:09:13,000 αν μεγεθύνετε έξω-για να εργαστούν μέσω αυτής της άσκησης στο κάτω μέρος της σελίδας 3 130 00:09:13,000 --> 00:09:20,000 όπου ρωτά τι τύποι αντιστοιχούν σε αυτές τις τιμές εδώ στο κάτω μέρος. 131 00:09:20,000 --> 00:09:24,000 Έχουμε 3,50. 132 00:09:24,000 --> 00:09:28,000 Έχουμε αυτό το πράγμα εδώ, η οποία είναι ενδιαφέρουσα. 133 00:09:28,000 --> 00:09:32,000 Δεν έχουμε δει ότι πριν, αν και, αν έχετε ακολουθήσει μαζί σε διάλεξη 134 00:09:32,000 --> 00:09:35,000 ίσως ήδη γνωρίζετε τι είναι αυτό. 135 00:09:35,000 --> 00:09:40,000 Στη συνέχεια, έχουμε αυτό, το οποίο είναι αυτό το είδος του funky. 136 00:09:40,000 --> 00:09:42,000 Μπορείτε αναγνωρίζουν αυτό. 137 00:09:42,000 --> 00:09:46,000 Τι είναι αυτό στο Γ; 138 00:09:46,000 --> 00:09:50,000 Sam; Τι θα ήταν αυτό που δίνετε σε C; 139 00:09:50,000 --> 00:09:54,000 Θα ανοίξει ένα αρχείο που ονομάζεται dynamic.php και καθιστούν ευανάγνωστο. 140 00:09:54,000 --> 00:09:58,000 Ναι, και ποιο θα είναι το είδος της μεταβλητής που θα αναθέσει αυτό; αστέρι Αρχείο >>. 141 00:09:58,000 --> 00:10:02,000 Ακριβώς, εμείς θα αναθέσει αυτό σε ένα αστέρι αρχείο. 142 00:10:02,000 --> 00:10:08,000 Αυτό είναι νόμιμο PHP πάρα πολύ. 143 00:10:08,000 --> 00:10:12,000 Εκτελέστε αυτό. Δείτε τι συμβαίνει όταν περνάτε ότι σε gettype. 144 00:10:12,000 --> 00:10:19,000 Και τότε επίσης να ελέγξετε έξω τι είναι μηδενική, τι μπορεί να είναι σε PHP. 145 00:10:19,000 --> 00:10:21,000 Θα σας δώσω μερικά λεπτά. 146 00:10:21,000 --> 00:10:24,000 Μπορείτε να κυριολεκτικά να αντιγράψετε και να επικολλήσετε αυτές τις αξίες σε, 147 00:10:24,000 --> 00:10:29,000 και στη συνέχεια θα κάνουμε μια μικρή τυχαία κλήση σε σας 148 00:10:29,000 --> 00:10:34,000 και να δούμε τι έχεις. 149 00:10:34,000 --> 00:10:36,000 >> [Φοιτητικό] Έχω μια ερώτηση. << Ναι. 150 00:10:36,000 --> 00:10:40,000 Σε μια από τις διαλέξεις, δήλωσε ο David υπάρχει κάτι που μπορείτε να βάλετε στην κορυφή του αρχείου σας 151 00:10:40,000 --> 00:10:43,000 έτσι ώστε να μην χρειάζεται να πληκτρολογείτε σε PHP κάθε φορά. 152 00:10:43,000 --> 00:10:45,000 Τι ήταν αυτό; 153 00:10:45,000 --> 00:10:50,000 Ήταν κατά πάσα πιθανότητα μιλάμε για την έκρηξη λίβρα, η hash Έκρηξη. 154 00:10:50,000 --> 00:10:57,000 Είναι μια οδηγία ότι αν επισημάνετε το αρχείο σας ως εκτελέσιμο 155 00:10:57,000 --> 00:11:01,000 τότε αυτό που κάνει είναι όταν εκτελείτε το αρχείο 156 00:11:01,000 --> 00:11:06,000 θα πει το πρόγραμμα κέλυφος 157 00:11:06,000 --> 00:11:12,000 να χρησιμοποιήσετε το PHP διερμηνέα για να ερμηνεύσει το περιεχόμενο του αρχείου. 158 00:11:12,000 --> 00:11:16,000 Το ερώτημα είναι τι ήταν αυτή η ειδική γραμμή 159 00:11:16,000 --> 00:11:20,000 ότι θα μπορούσαν να περιλαμβάνουν στην κορυφή της PHP αρχεία μας δεν πρέπει να περιλαμβάνουν 160 00:11:20,000 --> 00:11:26,000 αυτή η γραμμή PHP ή PHP αυτή η εντολή κάθε φορά που θέλετε να εκτελέσετε το αρχείο; 161 00:11:26,000 --> 00:11:31,000 Και μπορείτε να το κάνετε πραγματικά αυτό με ένα σωρό διαφορετικά αρχεία. 162 00:11:31,000 --> 00:11:37,000 Πιστεύω ότι εξαρτάται από το πού το PHP binary αποθηκεύεται, 163 00:11:37,000 --> 00:11:43,000 αλλά συχνά usr / bin / php είναι ένα καλό μέρος για να ξεκινήσετε. 164 00:11:43,000 --> 00:11:45,000 Μπορείτε να το καταλάβουν αυτό ακριβώς πηγαίνοντας πίσω στην συσκευή σας 165 00:11:45,000 --> 00:11:50,000 και δακτυλογράφηση που php. 166 00:11:50,000 --> 00:11:55,000 Η εντολή που υπολογίζει όταν είστε εκτέλεση δυαδικό 167 00:11:55,000 --> 00:12:01,000 ή μια εντολή όταν το αντίστοιχο αρχείο είναι. 168 00:12:01,000 --> 00:12:06,000 Αυτό μου λέει ότι η PHP είναι πραγματικά aliasing αυτό το δυαδικό αρχείο 169 00:12:06,000 --> 00:12:13,000 που είναι αποθηκευμένα στο usr / bin, το οποίο είναι όπου πολλά από τα εκτελέσιμα του συστήματος είναι εγκατεστημένα. 170 00:12:13,000 --> 00:12:21,000 Για παράδειγμα, αν μετακινηθείτε προς τα επάνω προς τα πάνω, τώρα που έχω βάλει αυτό το #! γραμμή εδώ 171 00:12:21,000 --> 00:12:27,000 Μπορώ να μετακινηθείτε προς τα κάτω, και δεν μπορώ να προσπαθήσετε να εκτελέσετε 172 00:12:27,000 --> 00:12:35,000 dynamic.php, αλλά παίρνω αυτό το σφάλμα σχετικά με την άδεια που αρνήθηκε, 173 00:12:35,000 --> 00:12:42,000 και τι σημαίνει αυτό είναι ότι αυτό το αρχείο δεν είναι εκτελέσιμο δίνοντας το παρόν άδειες. 174 00:12:42,000 --> 00:12:46,000 Δεν έχει επισημανθεί ως ένα αρχείο το οποίο κάποιος μπορεί να τρέξει. 175 00:12:46,000 --> 00:12:52,000 >> Όταν έτρεξε Μάρκα ή Clang και έχεις ένα εκτελέσιμο αρχείο από το 176 00:12:52,000 --> 00:12:56,000 ο compiler ήταν αρκετά έξυπνος για να ξέρω ότι hey, είμαι οικοδόμηση μιας εκτελέσιμο. 177 00:12:56,000 --> 00:13:00,000 Ίσως θέλετε να το εκτελέσει, γι 'αυτό θα διαμορφώσει αυτόματα 178 00:13:00,000 --> 00:13:02,000 τα δικαιώματα για σας. 179 00:13:02,000 --> 00:13:06,000 Αυτό δεν συμβαίνει, όμως, όταν δημιουργείτε ένα κανονικό αρχείο από το μηδέν, 180 00:13:06,000 --> 00:13:13,000 ο λόγος που συνήθως δεν θέλετε να έχετε οποιοδήποτε αρχείο στο σύστημά σας να είναι εκτελέσιμο, 181 00:13:13,000 --> 00:13:15,000 έτσι μπορείτε πραγματικά να πάει στο χέρι και να το κάνουμε. 182 00:13:15,000 --> 00:13:22,000 Ο ευκολότερος τρόπος να γίνει αυτό είναι με την εντολή chmod, 183 00:13:22,000 --> 00:13:28,000 και chmod + x λέει προσθέσετε το κομμάτι εκτελέσιμο 184 00:13:28,000 --> 00:13:31,000 επειδή υπάρχει η ανάγνωση bit, το bit εγγραφής και το bit εκτελέσιμο, 185 00:13:31,000 --> 00:13:35,000 r, νν και χ, 186 00:13:35,000 --> 00:13:39,000 και λέγοντας chmod + x θα ανάψει το κομμάτι εκτελέσιμο 187 00:13:39,000 --> 00:13:46,000 τότε για το αρχείο που ορίζουμε, το οποίο στην περίπτωση αυτή θα είναι dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Φοιτητικό] είναι ότι ενεργοποιημένη για όλους; 189 00:13:49,000 --> 00:13:52,000 Ας ελέγξουμε έξω, έτσι πώς θα ελέγξετε τα δικαιώματα; 190 00:13:52,000 --> 00:13:54,000 Ξέρετε πώς θα ελέγξετε τα δικαιώματα ενός αρχείου; 191 00:13:54,000 --> 00:13:56,000 [Ακούγεται ανταπόκριση των φοιτητών] 192 00:13:56,000 --> 00:13:58,000 Συγνώμη; >> [Φοιτητής] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD μας δίνει το αρχείο σε αμυχές. 194 00:14:03,000 --> 00:14:09,000 Καταχώρηση όλα τα αρχεία,-l, ​​θα μου δείξει όλα τα αρχεία στον κατάλογο μου 195 00:14:09,000 --> 00:14:13,000 είδος του σε καιρό, σας verbose τους, έτσι και εδώ βλέπουμε ότι 196 00:14:13,000 --> 00:14:17,000 dynamic.php αυτό το αρχείο 197 00:14:17,000 --> 00:14:23,000 αυτή τροποποιήθηκε τελευταία φορά στις 5 Νοέμβρη 16:21. 198 00:14:23,000 --> 00:14:26,000 Ο ιδιοκτήτης αυτού του αρχείου jharvard. 199 00:14:26,000 --> 00:14:28,000 Αυτός είναι ο χρήστης που είναι συνδεδεμένος μέσα 200 00:14:28,000 --> 00:14:31,000 Αυτός είναι ο χρήστης εργάζομαι ως, 201 00:14:31,000 --> 00:14:36,000 και αν είστε, επίσης, στη συσκευή είστε, επίσης, εργάζεται ως jharvard χρήστη. 202 00:14:36,000 --> 00:14:38,000 Είσαι στην ομάδα φοιτητών, 203 00:14:38,000 --> 00:14:44,000 και αυτά είναι πράγματα που θα δείτε αρκετά συχνά. 204 00:14:44,000 --> 00:14:47,000 >> Μπορούμε να πάμε σε μια μεγάλη λεπτομέρεια εδώ, 205 00:14:47,000 --> 00:14:50,000 αλλά ως επί το πλείστον ό, τι θέλετε να δείτε, όταν ψάχνετε να δείτε 206 00:14:50,000 --> 00:14:55,000 εάν ή όχι ένα αρχείο είναι εκτελέσιμο είναι κατά κύριο λόγο 207 00:14:55,000 --> 00:14:58,000 ο χρήστης ο οποίος κατέχει το αρχείο, ο ιδιοκτήτης, 208 00:14:58,000 --> 00:15:03,000 έτσι αυτό jharvard, και τότε θα έχουμε 209 00:15:03,000 --> 00:15:07,000 τα δικαιώματα bits εδώ στα αριστερά, 210 00:15:07,000 --> 00:15:13,000 και ο τρόπος για να διαβάσει αυτό είναι ότι το τελευταίο bit 211 00:15:13,000 --> 00:15:18,000 τυπικά χρησιμοποιείται για τη σήμανση ή όχι-τουλάχιστον σε αυτήν την περίπτωση 212 00:15:18,000 --> 00:15:21,000 αυτό το τελευταίο κομμάτι θα συχνά να τεθεί σε διαφήμιση για να υποδείξει 213 00:15:21,000 --> 00:15:24,000 ότι το αρχείο είναι ένας κατάλογος και όχι απλώς ένα κανονικό αρχείο. 214 00:15:24,000 --> 00:15:28,000 Στη συνέχεια, τα επόμενα 3 bits εδώ 215 00:15:28,000 --> 00:15:34,000 καθορίσει τα δικαιώματα που ο ιδιοκτήτης του αρχείου έχει, 216 00:15:34,000 --> 00:15:38,000 οπότε σε αυτή την περίπτωση jharvard, καθώς ο ιδιοκτήτης του αρχείου, μπορεί να διαβάσει και να γράψει αυτό το αρχείο, 217 00:15:38,000 --> 00:15:42,000 αλλά υπάρχει μια παύλα λέγοντας ότι jharvard δεν μπορούν να εκτελέσουν αυτό το αρχείο. 218 00:15:42,000 --> 00:15:46,000 Οι επόμενες 3 bits είναι για την ομάδα, έτσι αυτό είναι η ομάδα σπουδαστών, 219 00:15:46,000 --> 00:15:49,000 οπότε αν υπήρχαν πολλαπλοί χρήστες με συσκευή μου, 220 00:15:49,000 --> 00:15:52,000 και είχαμε πολλούς χρήστες ως μέρος της ομάδας μαθητών, 221 00:15:52,000 --> 00:15:55,000 τότε μπορεί να διαβάσει όλο αυτό το αρχείο, αλλά δεν μπορούν να το γράψω, 222 00:15:55,000 --> 00:15:59,000 επίσης και οποιονδήποτε άλλο, ο κόσμος 223 00:15:59,000 --> 00:16:01,000 μπορεί μόνο να διαβάσει το αρχείο, καθώς και. 224 00:16:01,000 --> 00:16:03,000 Υπάρχει μια καλή, μεγάλη writeup γι 'αυτό, 225 00:16:03,000 --> 00:16:05,000 ώστε να μπορείτε να διαβάσετε online. 226 00:16:05,000 --> 00:16:10,000 Στο σύνολο spec πρόβλημα πάμε σε αυτό με περισσότερες λεπτομέρειες. 227 00:16:10,000 --> 00:16:12,000 >> [Φοιτητικό] Είναι το 218 που αναφέρεται στον κόσμο; 228 00:16:12,000 --> 00:16:17,000 Το 218 είναι-από την κορυφή του κεφαλιού μου, ξεχνάω, 229 00:16:17,000 --> 00:16:20,000 αλλά όχι. 230 00:16:20,000 --> 00:16:29,000 Ας δούμε. Εγώ είμαι τυφλή εκείνη τη στιγμή. 231 00:16:29,000 --> 00:16:32,000 Επιστροφή σε ό, τι ήμασταν έτοιμοι να κάνουμε με αυτό το chmod + x 232 00:16:32,000 --> 00:16:37,000 όπου θέλαμε να δώσουμε δικαιώματα dynamic.php εκτελέσιμο, 233 00:16:37,000 --> 00:16:40,000 και το ερώτημα ήταν κατά πόσον ή όχι αυτό θα δώσει δικαιώματα σε όλους εκτελέσιμο 234 00:16:40,000 --> 00:16:44,000 ή απλά να jharvard, και μπορούμε να δούμε αυτό από 235 00:16:44,000 --> 00:16:48,000 την εκτέλεση των εντολών και πληκτρολογώντας ls-l, 236 00:16:48,000 --> 00:16:51,000 και τώρα βλέπουμε ότι έχει επισημανθεί ως εκτελέσιμο. 237 00:16:51,000 --> 00:16:54,000 Βλέπετε ότι υπήρξε μια αλλαγή του χρώματος. 238 00:16:54,000 --> 00:16:57,000 Τώρα dynamic.php είναι εισηγμένη στο πράσινο, 239 00:16:57,000 --> 00:17:01,000 και μοιάζει με την απάντηση στο ερώτημα αυτό είναι, Charlotte; 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Μόνο jharvard. >> Μόνο jharvard, ναι. 241 00:17:04,000 --> 00:17:08,000 >> Αν θέλαμε να μετατρέψει το εκτελέσιμο για λίγο για όλους 242 00:17:08,000 --> 00:17:10,000 πώς να το κάνουμε αυτό; 243 00:17:10,000 --> 00:17:13,000 Οποιεσδήποτε σκέψεις; >> A + x; 244 00:17:13,000 --> 00:17:15,000 Ναι, ακριβώς. 245 00:17:15,000 --> 00:17:23,000 Charlotte είπε μπορούμε να κάνουμε chmod a + x του dynamic.php, 246 00:17:23,000 --> 00:17:26,000 και τώρα αν τρέξουμε ls-l βλέπουμε ότι τα bits εκτελέσιμο 247 00:17:26,000 --> 00:17:30,000 πράγματι ενεργοποιηθεί για όλους. 248 00:17:30,000 --> 00:17:37,000 Και μπορείτε να το κάνετε πραγματικά το αντίθετο από αυτό, ώστε να μπορείτε να την απενεργοποιήσετε για όλους 249 00:17:37,000 --> 00:17:41,000 χρησιμοποιώντας μείον. 250 00:17:41,000 --> 00:17:46,000 Τώρα αυτό είναι απενεργοποιημένο, και τώρα μπορούμε να γυρίσουμε πίσω για την jharvard 251 00:17:46,000 --> 00:17:52,000 έτσι ώστε να μπορεί να τρέξει πραγματικά τώρα, 252 00:17:52,000 --> 00:17:58,000 και τώρα θα δείτε όταν τρέχουμε τον κώδικα αυτό το ειδικό #! γραμμή στο πάνω μέρος, 253 00:17:58,000 --> 00:18:04,000 #! γραμμή, είπε στο κέλυφος, 254 00:18:04,000 --> 00:18:08,000 τερματικό μας είπε hey, όταν αυτό το αρχείο εκτελείται, 255 00:18:08,000 --> 00:18:14,000 χρήση / usr / bin / php για να ερμηνεύσει αυτό το αρχείο 256 00:18:14,000 --> 00:18:20,000 και στη συνέχεια να εκτυπώσετε το αποτέλεσμα. 257 00:18:20,000 --> 00:18:22,000 [Ακούγεται ερώτηση φοιτητή] 258 00:18:22,000 --> 00:18:25,000 Σίγουρα, επιτρέψτε μου να μετακινηθείτε προς τα πίσω επάνω. Ακριβώς όπως αυτό. 259 00:18:25,000 --> 00:18:36,000 Θα δείτε όλες τις οδηγίες αυτές αρχίζουν με αυτό το κιλό και στη συνέχεια το θαυμαστικό, 260 00:18:36,000 --> 00:18:39,000 μερικές φορές ονομάζεται δουλεία, hash κτύπημα. 261 00:18:39,000 --> 00:18:48,000 >> [Φοιτητής] Πώς μπορούμε να το τρέξετε με dynamic.php php πριν κάνουμε εκτελέσιμο; 262 00:18:48,000 --> 00:18:55,000 Το ερώτημα ήταν πώς μπορούμε να εκτελέσουμε αυτό χρησιμοποιώντας το δυαδικό PHP 263 00:18:55,000 --> 00:18:58,000 dynamic.php ενώ δεν είναι εκτελέσιμο; 264 00:18:58,000 --> 00:19:01,000 Αυτό είναι εξαιρετικά σημαντικό, διότι αυτό είναι ακριβώς το πώς 265 00:19:01,000 --> 00:19:06,000 πρόκειται να λειτουργήσει όταν γράφετε σετ πρόβλημα 7. 266 00:19:06,000 --> 00:19:09,000 Τα περισσότερα από τα αρχεία χρόνου της PHP δεν είναι άμεσα εκτελέσιμο. 267 00:19:09,000 --> 00:19:14,000 Ο τρόπος που λειτουργεί είναι επειδή είναι το PHP binary που είναι εκτελέσιμο. 268 00:19:14,000 --> 00:19:16,000 Ο διερμηνέας είναι το πράγμα που είναι υπό εκτέλεση, 269 00:19:16,000 --> 00:19:20,000 και έτσι τι κάνει κυριολεκτικά ρουφάτε σε όλο το περιεχόμενο 270 00:19:20,000 --> 00:19:25,000 dynamic.php του αρχείου μας και θα γραμμή προς γραμμή 271 00:19:25,000 --> 00:19:29,000 και την εκτέλεση αυτών των εντολών, γι 'αυτό χρησιμοποιώντας PHP αρχείο μας 272 00:19:29,000 --> 00:19:31,000 ως μια λίστα με τις οδηγίες. 273 00:19:31,000 --> 00:19:36,000 Δεν είναι εκτελεί άμεσα. 274 00:19:36,000 --> 00:19:40,000 Αυτό είναι που λέμε ότι τα αρχεία αυτά ερμηνεύονται κατά το χρόνο εκτέλεσης. 275 00:19:40,000 --> 00:19:46,000 Είναι ένα τρέξιμο γλώσσα χρόνο αντί κάτι που καθορίζεται κατά τη μεταγλώττιση, 276 00:19:46,000 --> 00:19:49,000 δεν καταρτίζονται γλώσσα, όπως C. 277 00:19:49,000 --> 00:19:54,000 >> Είναι ένας τρόπος για να πάρετε μια γλώσσα χρόνου εκτέλεσης να ενεργεί σαν να είναι μια γλώσσα τη διάρκεια της μεταγλώττισης εκεί, 278 00:19:54,000 --> 00:19:58,000 όπως και αν έχετε όλη τη λειτουργία που έγινε στο διακομιστή 279 00:19:58,000 --> 00:20:00,000 αντί-ξέρετε τι εννοώ; 280 00:20:00,000 --> 00:20:04,000 Ναι, έτσι το ερώτημα είναι 281 00:20:04,000 --> 00:20:11,000 Είναι ένας τρόπος για να πάρετε τρέξει γλώσσες ώρα να δράσουμε περισσότερο σαν τύποι μεταγλώττισης χρόνο γλώσσες; 282 00:20:11,000 --> 00:20:18,000 Και εκεί, θέλω να πω, ότι είναι ένας ενεργός τομέας της έρευνας για πολλές από αυτές τις εταιρείες. 283 00:20:18,000 --> 00:20:22,000 Πιστεύω ότι το Facebook έχει κάνει πολλή δουλειά με την PHP 284 00:20:22,000 --> 00:20:25,000 και τη σύνταξη προς τα κάτω, καθιστώντας πιο γρήγορα, τη βελτιστοποίηση 285 00:20:25,000 --> 00:20:29,000 δεδομένου ότι η ιστοσελίδα τους είναι χτισμένο σε PHP. 286 00:20:29,000 --> 00:20:34,000 Αν έχετε ακολουθήσει Node.js καθόλου, 287 00:20:34,000 --> 00:20:40,000 η οποία είναι ένα είδος διερμηνέα JavaScript 288 00:20:40,000 --> 00:20:44,000 να είναι σε θέση να τρέξει το JavaScript έξω από το πρόγραμμα περιήγησης, εκτός του web browser σας, 289 00:20:44,000 --> 00:20:47,000 επειδή παραδοσιακά JavaScript θα τρέξει μόνο μέσα από τον Firefox ή Chrome, 290 00:20:47,000 --> 00:20:52,000 και θα πρέπει να χρησιμοποιούνται για να κάνουν δροσερό κινούμενα σχέδια συμβεί σε μια ιστοσελίδα 291 00:20:52,000 --> 00:20:55,000 και να κάνει την ιστοσελίδα σας δυναμική. 292 00:20:55,000 --> 00:20:59,000 Που είναι ήδη χτισμένο σε μια μεγάλη δουλειά που έχει κάνει η Google 293 00:20:59,000 --> 00:21:03,000 να κάνουν το JavaScript και C + + 294 00:21:03,000 --> 00:21:09,000 ενώνουν, έτσι υπάρχει μια πολύ ενεργή στην έρευνα 295 00:21:09,000 --> 00:21:13,000 πάρετε αυτές τις γλώσσες να αλληλεπιδρούν και να βελτιστοποιήσουν, 296 00:21:13,000 --> 00:21:17,000 κυρίως επειδή τόσοι πολλοί άνθρωποι μπορούν να κωδικοποιήσουν σε PHP και JavaScript 297 00:21:17,000 --> 00:21:19,000 γιατί είναι πολύ πιο εύκολο. 298 00:21:19,000 --> 00:21:21,000 Είναι πολύ καλύτερο. Δεν χρειάζεται υποδείξεις. 299 00:21:21,000 --> 00:21:27,000 Δεν έχετε είδη επιπλέουν γύρω. 300 00:21:27,000 --> 00:21:31,000 Ήθελαν να κερδίσουν τα οφέλη από αυτές τις γλώσσες του χρόνου μεταγλώττισης 301 00:21:31,000 --> 00:21:36,000 με όλα τον έλεγχο τύπο και την ταχύτητα και τη χαμηλότερη χρήση μνήμης και ότι όλα 302 00:21:36,000 --> 00:21:42,000 ενώ εξακολουθεί να διατηρεί την ευελιξία και την ευκολία της χρήσης αυτών νεώτερους. 303 00:21:42,000 --> 00:21:46,000 >> Επιστροφή στο αρχικό σχέδιο της επίθεσης μας. 304 00:21:46,000 --> 00:21:50,000 Έχουμε μερικές από αυτές τις ερωτήσεις εδώ στο spec σύνολο πρόβλημά μας. 305 00:21:50,000 --> 00:21:54,000 Ας πάμε μέσα από αυτά πολύ γρήγορα, και θα πάμε γύρω από το δωμάτιο. 306 00:21:54,000 --> 00:21:59,000 Charlotte, τι τύπος είναι 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Αυτό είναι ένα διπλό. >> Είναι ένα διπλό. 308 00:22:01,000 --> 00:22:03,000 Jimmy, τι είναι αυτό το επόμενο; >> Μια σειρά. 309 00:22:03,000 --> 00:22:09,000 Μια σειρά, φοβερό, και Jared, ποια είναι η fopen; 310 00:22:09,000 --> 00:22:11,000 [Jared] Είναι ένας πόρος. >> Είναι ένας πόρος. 311 00:22:11,000 --> 00:22:15,000 Αυτό είναι το είδος της ένα νέο και όχι ένα αστέρι αρχείο, όχι ένα αρχείο. 312 00:22:15,000 --> 00:22:19,000 Είναι ένας πόρος είναι ο τύπος σε PHP, 313 00:22:19,000 --> 00:22:24,000 και λυπάμαι, Ella, η τελευταία είναι άκυρη τι; 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, πώς διατυπώνονται στην PHP; >> με τον ίδιο τρόπο. 316 00:22:28,000 --> 00:22:30,000 Με τον ίδιο τρόπο, πρωτεύουσες; >> Ναι. 317 00:22:30,000 --> 00:22:33,000 Ναι, εντάξει. 318 00:22:33,000 --> 00:22:35,000 Πάμε λοιπόν, έχουμε ένα διπλό, έχουμε μια σειρά, 319 00:22:35,000 --> 00:22:41,000 έχουμε έναν πόρο, και στη συνέχεια να έχουμε μηδενική. 320 00:22:41,000 --> 00:22:48,000 Ας δούμε τώρα έχετε δει- 321 00:22:48,000 --> 00:22:51,000 Ας δούμε, έτσι τώρα υποθέτω ότι αυτό που θέλω επίσης να κάνετε είναι να σηκώσει 322 00:22:51,000 --> 00:22:56,000 αυτή η ιστοσελίδα δικαίωμα εδώ, αυτό php.net / εγχειρίδιο, 323 00:22:56,000 --> 00:23:01,000 οπότε αν εσείς ότι αντιγράψετε και να ανοίξει ένα πρόγραμμα περιήγησης στο web. 324 00:23:01,000 --> 00:23:07,000 Πάω να σηκώσει Chrome, βάλτε ότι μέσα 325 00:23:07,000 --> 00:23:10,000 Θέλω να σας δείξω αυτό όχι μόνο επειδή 326 00:23:10,000 --> 00:23:13,000 μπορούμε να μιλάμε όλη μέρα για τους τύπους και όλα αυτά τα πράγματα διασκέδαση 327 00:23:13,000 --> 00:23:19,000 αλλά επειδή αυτό είναι το εγχειρίδιο της PHP, 328 00:23:19,000 --> 00:23:23,000 και υπάρχουν πολλά PHP προγραμματιστές εκεί έξω. 329 00:23:23,000 --> 00:23:26,000 Υπάρχουν πολλά PHP ιστοσελίδες εκεί έξω, 330 00:23:26,000 --> 00:23:31,000 και ως εκ τούτου, υπάρχει μια μεγάλη τεκμηρίωση για PHP, 331 00:23:31,000 --> 00:23:36,000 και το εγχειρίδιο, η php.net, είναι μια πολύ καλή θέση για να πάει 332 00:23:36,000 --> 00:23:43,000 κάθε φορά που είστε με ερωτήσεις σχετικά με το τι είναι ο καλύτερος τρόπος για να κάνει το Χ στην PHP 333 00:23:43,000 --> 00:23:45,000 ή τι κάνει μια λειτουργία μοιάζει; 334 00:23:45,000 --> 00:23:49,000 Ακριβώς το είδος του να πάρει εξοικειωμένοι με τι μοιάζει αυτό γιατί 335 00:23:49,000 --> 00:23:54,000 θα πρέπει να έρχονται συχνά εδώ, ένα κομμάτι για το πρόβλημα που 7. 336 00:23:54,000 --> 00:23:57,000 >> Εάν καταλήξετε να κάνει ένα τελικό σχέδιο που χρησιμοποιεί PHP 337 00:23:57,000 --> 00:24:04,000 αυτό θα είναι ένα μέρος που θα γίνει πολύ καλά εξοικειωμένοι με. 338 00:24:04,000 --> 00:24:09,000 Συχνά, ο τρόπος που οι άνθρωποι κάνουν αυτό είναι που χρησιμοποιούν το Google για να αναζητήσετε την ιστοσελίδα, 339 00:24:09,000 --> 00:24:16,000 και δεν χρησιμοποιούν το πλαίσιο αναζήτησης που είναι εδώ στην πάνω δεξιά γωνία, η οποία είναι το είδος των μικροσκοπικών. 340 00:24:16,000 --> 00:24:19,000 Αν είστε Googling γύρω για κάτι να κάνει με την PHP και να δείτε 341 00:24:19,000 --> 00:24:24,000 έναν από τους συνδέσμους εγχειρίδιο pop up μπορείτε να συνήθως βασίζονται σε ότι 342 00:24:24,000 --> 00:24:31,000 ως μια αρκετά καλή πηγή. 343 00:24:31,000 --> 00:24:34,000 Awesome, τόσο από αυτούς τους τύπους, απλά από περιέργεια, 344 00:24:34,000 --> 00:24:37,000 ποια δεν έχουμε δει; 345 00:24:37,000 --> 00:24:40,000 Ό, τι δεν έχουμε δει εδώ; 346 00:24:40,000 --> 00:24:44,000 [Φοιτητικό] Πόρων. >> Είδαμε πόρων με την κλήση fopen. 347 00:24:44,000 --> 00:24:48,000 [Φοιτητικό] αντικείμενα. Αντικείμενα >> δεν έχουμε δει στα σίγουρα. 348 00:24:48,000 --> 00:24:51,000 Επανακλήσεις δεν έχουμε δει. 349 00:24:51,000 --> 00:24:54,000 Υπάρχουν μερικά από αυτά τα ψευδο-τύπων. 350 00:24:54,000 --> 00:24:57,000 Εμείς σίγουρα μόνο είδε ακέραιο και διπλό. 351 00:24:57,000 --> 00:25:01,000 Δεν είδαμε μερικά από τα άλλα, οπότε αν κάνουμε κλικ στο ακέραιοι 352 00:25:01,000 --> 00:25:08,000 μπορούμε να δούμε υπάρχουν άλλοι ακέραιοι που έχουν εδώ; 353 00:25:08,000 --> 00:25:11,000 Είναι όλοι-έτσι ακέραιος, ακέραιος, ακέραιος. 354 00:25:11,000 --> 00:25:14,000 Μερικές γλώσσες έχουν μεγαλύτερο ακέραιο αριθμό τύπων, 355 00:25:14,000 --> 00:25:23,000 όπως είδαμε στην MySQL σήμερα υπήρχε και στη συνέχεια int int μεγάλη. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Έτσι, το εγχειρίδιο της PHP. 358 00:25:28,000 --> 00:25:37,000 Ας πάμε πίσω στο πρόβλημά μας spec σύνολο, και τώρα θα μετακινηθείτε προς τα κάτω στη σελίδα 4. 359 00:25:37,000 --> 00:25:41,000 Ένα από τα πράγματα που συμβαίνουν όταν παίρνετε αυτές τις γλώσσες 360 00:25:41,000 --> 00:25:49,000 που δεν έχουν αυτήν τη στατική δακτυλογράφηση, έτσι ώστε αυτές οι γλώσσες, όπου θα πρέπει να δηλώνουν 361 00:25:49,000 --> 00:25:52,000 ο τύπος του ενός εμπρόσθιου μέχρι μεταβλητής 362 00:25:52,000 --> 00:26:00,000 είναι να πάρετε περιπτώσεις κατά τις οποίες μπορεί να αρχίσει να έχει μεταβλητές διαφόρων τύπων 363 00:26:00,000 --> 00:26:04,000 αλληλεπιδρούν μεταξύ τους, 364 00:26:04,000 --> 00:26:09,000 PHP και κάνει αυτό το πράγμα που προσπαθεί να κάνει 365 00:26:09,000 --> 00:26:13,000 αυτό που θεωρεί ότι είναι το πιο λογικό πράγμα που πρέπει να κάνετε 366 00:26:13,000 --> 00:26:18,000 όταν έχετε 2 διαφορετικούς τύπους αλληλεπιδρούν μεταξύ τους. 367 00:26:18,000 --> 00:26:24,000 Για παράδειγμα, αν κοιτάξουμε αυτές τις γραμμές κώδικα εδώ 368 00:26:24,000 --> 00:26:29,000 θα δείτε ότι έχουμε ό, τι συμβαίνει όταν 369 00:26:29,000 --> 00:26:38,000 προσπαθούμε και να προσθέσετε τη συμβολοσειρά 1 στο ακέραιο 2. 370 00:26:38,000 --> 00:26:41,000 Τι θα συμβεί αν προσπαθήσουμε και να προσθέσετε μια συμβολοσειρά που δεν είναι μια αριθμητική τιμή 371 00:26:41,000 --> 00:26:48,000 αλλά μάλλον πραγματικούς χαρακτήρες, CS με τον αριθμό 50; 372 00:26:48,000 --> 00:26:51,000 Στη συνέχεια θα δούμε είναι κάτι διαφορετικό που συμβαίνει όταν υπάρχει 373 00:26:51,000 --> 00:26:56,000 αντί της προσθήκης ενός string σε έναν αριθμό είμαστε προσθέτοντας έναν αριθμό σε ένα string, 374 00:26:56,000 --> 00:27:00,000 και ούτω καθεξής και ούτω καθεξής μέχρι το σημείο όπου παίρνουμε 375 00:27:00,000 --> 00:27:05,000 κάποια περίεργα πράγματα εδώ όπου έχουμε 7 + αλήθεια. 376 00:27:05,000 --> 00:27:09,000 Τι στο καλό σημαίνει αυτό; 377 00:27:09,000 --> 00:27:19,000 >> Αν εσείς πάτε μπροστά και να επικολλήσετε μερικά από αυτόν τον κώδικα σε συσκευή σας. 378 00:27:19,000 --> 00:27:27,000 Μπορείτε να το κρατήσετε στο dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Θα δούμε τι θα συμβεί. 380 00:27:41,000 --> 00:27:43,000 [Φοιτητικό] Απλά χρησιμοποιήστε εκτύπωσης, δεν printf; 381 00:27:43,000 --> 00:27:52,000 Ναι, έτσι θα διαπιστώσετε ότι η εκτύπωση είναι επίσης μια έγκυρη λειτουργία για την εκτύπωση σε PHP. 382 00:27:52,000 --> 00:27:54,000 Υπάρχουν πολλοί διαφορετικοί τρόποι για να γίνει αυτό. 383 00:27:54,000 --> 00:27:58,000 Θα δούμε με μερικά παραδείγματα για αργότερα όταν θα αρχίσουμε να μιλάμε 384 00:27:58,000 --> 00:28:02,000 για το μοναδικό πρόβλημα που θα πάμε να γράψω 385 00:28:02,000 --> 00:28:06,000 και τότε το πρόβλημα συγκεντρώσεις ότι θα πάμε να γράψω 386 00:28:06,000 --> 00:28:09,000 ότι ακόμα κι αν έχουμε fopen και fclose 387 00:28:09,000 --> 00:28:15,000 αυτό είναι συχνά δεν είναι ο απλούστερος τρόπος για να διαβάσει τα περιεχόμενα ενός αρχείου. 388 00:28:15,000 --> 00:28:21,000 Η PHP έχει πολλά από αυτά τα C-σαν συνεχιστές. 389 00:28:21,000 --> 00:28:28,000 [Φοιτητικό] Όταν έβαλα σε όλα τα 6 από αυτά τα πράγματα έχω μόνο έναν αριθμό ως ένα έξοδο. 390 00:28:28,000 --> 00:28:36,000 [Nate H] Όταν βάζετε σε όλα τα 6 από αυτά τα πράγματα. 391 00:28:36,000 --> 00:28:39,000 Ας δούμε είναι γιατί είναι πιθανόν- 392 00:28:39,000 --> 00:28:46,000 ένα πράγμα είναι ότι αυτές οι κλήσεις εκτύπωσης τερματίζεται στο τέλος με νέες γραμμές. 393 00:28:46,000 --> 00:28:49,000 Δεν υπάρχει καμία νέα γραμμή που χωρίζει το καθένα από αυτά κλήσεις εκτύπωσης, 394 00:28:49,000 --> 00:28:51,000 έτσι ίσως έχετε πάρει ένα μεγάλο αριθμό, 395 00:28:51,000 --> 00:28:58,000 και αυτό είναι πραγματικά ακριβώς αμάλγαμα χαρακτήρες νέας γραμμής. 396 00:28:58,000 --> 00:29:00,000 [Φοιτητικό] Εντάξει, πώς μπορώ να βεβαιωθώ- 397 00:29:00,000 --> 00:29:03,000 Λοιπόν, υπάρχουν ένα σωρό διαφορετικούς τρόπους. 398 00:29:03,000 --> 00:29:06,000 Θα μπορούσατε να το χέρι που σε μια εκτύπωση από ένα νέο χαρακτήρα γραμμής, 399 00:29:06,000 --> 00:29:09,000 μια ηχώ ενός νέου χαρακτήρα της γραμμής, 400 00:29:09,000 --> 00:29:12,000 εκτύπωση της νέας γραμμής. 401 00:29:12,000 --> 00:29:16,000 [Φοιτητικό] Έτσι ηχώ είναι το ίδιο πράγμα με printf; 402 00:29:16,000 --> 00:29:21,000 >> Printf είναι σαν C printf 403 00:29:21,000 --> 00:29:24,000 Όπου και αν εκτυπώνετε ένα μορφοποιημένο string. 404 00:29:24,000 --> 00:29:32,000 Είσαι προμηθεύουν το string μορφή και στη συνέχεια όλες τις μεταβλητές κράτησης θέσης. 405 00:29:32,000 --> 00:29:39,000 Είναι κάτι που συχνά δεν χρησιμοποιείται- 406 00:29:39,000 --> 00:29:42,000 Ας δούμε, ως παραίτηση από κάθε ευθύνη, 407 00:29:42,000 --> 00:29:48,000 Δεν είμαι τόσο εξοικειωμένος με την PHP από ό, τι είμαι με άλλες γλώσσες Ιστού, 408 00:29:48,000 --> 00:29:53,000 και όταν έχω προγραμματίσει σε PHP που συνήθως δεν χρησιμοποιούν printf 409 00:29:53,000 --> 00:29:59,000 επειδή θεωρώ ότι είναι πιο γρήγορα για να χρησιμοποιήσετε τις δυνατότητες παρεμβολή σειρά που έχει, 410 00:29:59,000 --> 00:30:04,000 που θα πάμε μέσα και θα σας δείξω σε μόλις ένα δευτερόλεπτο, 411 00:30:04,000 --> 00:30:08,000 ενώ στο Γ 'αυτό το είδος του πρέπει να κάνουμε αυτό το πράγμα Hacky να το πάρει για να εκτυπώσετε σωστά. 412 00:30:08,000 --> 00:30:16,000 Μπορείτε να βάλετε πραγματικά μεταβλητές άμεσα σε χορδές σε PHP. 413 00:30:16,000 --> 00:30:22,000 Printf είναι το είδος της υπερβολικά πολύ για αυτό που κάνω συνήθως. Ναι, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Σε γενικές γραμμές, αν έχετε σφάλμα ανάλυσης σημαίνει αυτό- 415 00:30:25,000 --> 00:30:30,000 όπως στην C δεν σας πω ακριβώς πού είναι το λάθος και τι είναι, 416 00:30:30,000 --> 00:30:34,000 έτσι σημαίνει αυτό ματιά μέσα από ολόκληρο τον κώδικα σας και να καταλάβω; 417 00:30:34,000 --> 00:30:39,000 Είναι συνήθως πιο στοχευμένη από αυτό. 418 00:30:39,000 --> 00:30:48,000 Νομίζω ότι σε αυτή την περίπτωση ήταν λίγο μακριά, 419 00:30:48,000 --> 00:30:51,000 οπότε πιστεύω ότι σε αυτή την περίπτωση είχαμε λείπει ένα ερωτηματικό. 420 00:30:51,000 --> 00:30:54,000 Ήταν προσπαθούν να βγάλουν νόημα από όλα, 421 00:30:54,000 --> 00:30:57,000 έτσι όπως αυτές ερμηνεύονται γλώσσες, ο διερμηνέας θα προσπαθήσει 422 00:30:57,000 --> 00:31:01,000 και καταβάλει κάθε δυνατή προσπάθεια για να καταστεί η εργασία τα πάντα σωστά. 423 00:31:01,000 --> 00:31:04,000 >> Θα δείτε, για παράδειγμα, σε JavaScript 424 00:31:04,000 --> 00:31:10,000 Θα συχνά-line δηλώσεις τέλος με ένα ερωτηματικό ακριβώς όπως κάνουν σε PHP, 425 00:31:10,000 --> 00:31:13,000 ακριβώς όπως κάνουν σε C. 426 00:31:13,000 --> 00:31:15,000 Σε JavaScript μερικά από τα διερμηνείς JavaScript 427 00:31:15,000 --> 00:31:20,000 σε πολλά από τα προγράμματα περιήγησης θα θέσει σε ερωτηματικά για σας 428 00:31:20,000 --> 00:31:23,000 αν τύχει να τους λείπει. 429 00:31:23,000 --> 00:31:29,000 Θα προσπαθήσουμε και να φιλοξενήσει για κάποια προχειρότητα από την πλευρά σας. 430 00:31:29,000 --> 00:31:34,000 Αυτό είναι όπου θα μπορούσε να προσπαθεί και προσπαθεί και προσπαθεί να κάνει τα πράγματα να λειτουργήσουν, 431 00:31:34,000 --> 00:31:36,000 και τελικά θα φτάσουμε σε ένα σημείο όπου λέει εντάξει, 432 00:31:36,000 --> 00:31:38,000 Δεν μπορώ να κάνω πράγματα για διάσωση, και αυτό είναι όπου θα έχετε έναν αριθμό γραμμής 433 00:31:38,000 --> 00:31:44,000 που μπορεί να φαίνεται λίγο μακριά από την ακριβή θέση. 434 00:31:44,000 --> 00:31:47,000 Εντάξει, οπότε ας πάμε μέσα από αυτό πολύ γρήγορα. 435 00:31:47,000 --> 00:31:50,000 Έχουμε μείνει με Ella, οπότε ας πάμε πάνω να Missy, 436 00:31:50,000 --> 00:31:54,000 και Missy, τι εκτύπωσης της σειράς 1 συν τον αριθμό 2 δίνετε; 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Μήπως αυτό έχει νόημα; Ταξινόμηση της; 439 00:31:59,000 --> 00:32:02,000 Μήπως να σας δώσω έναν αριθμό; Μήπως σας δώσει μια σειρά; 440 00:32:02,000 --> 00:32:05,000 [Missy] Ένας αριθμός. >> Είναι ένας αριθμός. 441 00:32:05,000 --> 00:32:09,000 Αλλά αξίζει τον εκτύπωση, έτσι πρόκειται να σας δώσω κάποια σειρά. 442 00:32:09,000 --> 00:32:12,000 >> Ένα πράγμα που μπορούμε να κάνουμε για να ελέγξετε αυτό έξω 443 00:32:12,000 --> 00:32:21,000 είναι αν κάνουμε $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 και τότε λέμε ηχώ του gettype, 445 00:32:28,000 --> 00:32:33,000 έτσι είμαστε χρησιμοποιώντας ένα τρίτο είδος της εκτύπωσης εδώ. 446 00:32:33,000 --> 00:32:39,000 Τώρα μπορούμε να δούμε τι συμβαίνει εδώ. 447 00:32:39,000 --> 00:32:42,000 Εδώ τι έχουμε είναι ότι έχεις έναν ακέραιο από αυτό. 448 00:32:42,000 --> 00:32:45,000 Ακόμα κι αν είχαμε την προσθήκη αυτής της σειράς σε έναν αριθμό, 449 00:32:45,000 --> 00:32:48,000 δεν είχαμε πάρει μια σειρά από αυτό, ακριβώς όπως Missy είπε. 450 00:32:48,000 --> 00:32:52,000 Είχαμε πάρει έναν ακέραιο. 451 00:32:52,000 --> 00:32:57,000 Εντάξει, γι 'αυτό ας δούμε, το επόμενο επάνω, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Μήπως αυτό έχει νόημα; 454 00:33:02,000 --> 00:33:04,000 [Kevin] Ναι. 455 00:33:04,000 --> 00:33:06,000 [Nate H] Γιατί; Γιατί έχει νόημα για σας; 456 00:33:06,000 --> 00:33:11,000 [Kevin] Επειδή αυτό είναι που έχει μόνο τη συμβολοσειρά, αριθμός που έχει μηδενική αξία. 457 00:33:11,000 --> 00:33:16,000 Ναι, πολύ. 458 00:33:16,000 --> 00:33:20,000 Είδος διφορούμενες καταστάσεις, αλλά είναι καλό να γνωρίζουμε τι συμβαίνει. 459 00:33:20,000 --> 00:33:25,000 Στέλλα, τι θα συμβεί στη συνέχεια με τον αριθμό 1 + σειρά 2; 460 00:33:25,000 --> 00:33:27,000 [Στέλλα] 3. >> 3 ξανά. 461 00:33:27,000 --> 00:33:30,000 Και σε αυτή την περίπτωση, δεν θα έχουμε ένα string ή έναν αριθμό; 462 00:33:30,000 --> 00:33:36,000 >> Ας δώσει σε αυτό μια δοκιμή. 463 00:33:36,000 --> 00:33:43,000 Ο καθένας γρηγορότερα από ό, τι να πάρω την απάντηση; Charlotte; 464 00:33:43,000 --> 00:33:46,000 Ω, didn't-εντάξει, ας δούμε, θα πάμε να κάνουμε το ίδιο πράγμα 465 00:33:46,000 --> 00:33:49,000 όπου έχουμε έναν αριθμό συν ένα string, και θα πάμε να επαναλάβω τον τύπο, 466 00:33:49,000 --> 00:33:51,000 να δούμε τι έχουμε. 467 00:33:51,000 --> 00:33:55,000 Μπορούμε επίσης να πάρετε έναν ακέραιο. 468 00:33:55,000 --> 00:33:58,000 Δεν έχει σημασία ποια είναι η χορδή, η οποία το ένα είναι ο αριθμός. 469 00:33:58,000 --> 00:34:00,000 Είμαστε ακόμα πρόκειται να πάρει έναν ακέραιο. 470 00:34:00,000 --> 00:34:04,000 Είναι ακόμη σε εξέλιξη για να κάνουμε ό, τι μπορούμε να περιμένουμε. 471 00:34:04,000 --> 00:34:09,000 Εντάξει, έτσι Σαμ, τι περίπου 90 + 9 μπουκάλια μπύρας στον τοίχο; 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Δεν μπουκάλια μπύρας στον τοίχο, όμως. 474 00:34:15,000 --> 00:34:17,000 Μας δίνει λίγο περισσότερες πληροφορίες για το τι συμβαίνει. 475 00:34:17,000 --> 00:34:21,000 [Sam] Αν είχε γράψει 9 σε επιστολές 476 00:34:21,000 --> 00:34:23,000 τότε θα έχετε 90, έτσι δεν είναι; 477 00:34:23,000 --> 00:34:26,000 [Nate Η.] Ναι. 478 00:34:26,000 --> 00:34:30,000 Το ερώτημα ήταν αν είχαμε γράψει 9 από το Ν-Ι-Ν-Ε 479 00:34:30,000 --> 00:34:34,000 θα έχουμε πάρει 99 ή 90; 480 00:34:34,000 --> 00:34:38,000 Θα έπαιρνα 90. 481 00:34:38,000 --> 00:34:42,000 Είναι κυριολεκτικά απλά ψάχνουν για ψηφίο χαρακτήρες. 482 00:34:42,000 --> 00:34:46,000 Δεν είναι αρκετά έξυπνος για να αναγνωρίσει τον αριθμό λέξεων και αυτό το πράγμα. Ναι. 483 00:34:46,000 --> 00:34:48,000 >> [Φοιτητικό] Υπάρχει ένα τέτοιο πράγμα ως typecasting στην PHP; 484 00:34:48,000 --> 00:34:54,000 Υπάρχει, και αυτό είναι ακριβώς ο τρόπος που θα το κάνει σε C. 485 00:34:54,000 --> 00:34:56,000 Τι γίνεται 10/7, Charlotte; 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate Η.] Ναι, ναι, τι θα μπορούσε να είναι έκπληξη για το θέμα αυτό; 488 00:35:01,000 --> 00:35:04,000 Τι θα συνέβαινε αν έκανε το ίδιο είδος του πράγματος σε C, 489 00:35:04,000 --> 00:35:06,000 αν το κάνατε 10/7 στο C; 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Θα σας δώσω μόνο-ανάλογα με το πώς typecasted υποθέτω 491 00:35:08,000 --> 00:35:12,000 θα σας δώσει μόνο έναν περιορισμένο αριθμό των ψηφίων μετά την υποδιαστολή. 492 00:35:12,000 --> 00:35:16,000 Ναι, έτσι, ένα περιορισμένο αριθμό των ψηφίων μετά την υποδιαστολή. 493 00:35:16,000 --> 00:35:21,000 Τι άλλο θα μπορούσε να είναι-θα σας δώσει όλα τα ψηφία μετά την υποδιαστολή; 494 00:35:21,000 --> 00:35:28,000 Συχνά δεν είναι, οπότε και πάλι, ανάλογα με το πώς εσείς το typecasting 495 00:35:28,000 --> 00:35:31,000 μπορεί ή δεν μπορεί να το μετατρέψει σε ένα αριθμό κινητής υποδιαστολής. 496 00:35:31,000 --> 00:35:35,000 Εδώ ήταν το είδος της ωραίο που το έκανε. 497 00:35:35,000 --> 00:35:40,000 Αν είχαμε δείξει την πλάτη σας όταν αρχίσαμε να κάνουμε αυτό το είδος του πράγματα σε C 498 00:35:40,000 --> 00:35:44,000 κατά πάσα πιθανότητα θα έχουν κάνει λίγο περισσότερο νόημα 499 00:35:44,000 --> 00:35:48,000 ότι δεν πήγαινε προς 1. 500 00:35:48,000 --> 00:35:51,000 Και τελικά, Jamie, τι περίπου 7 + αλήθεια; 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Τι σημαίνει αυτό; 503 00:35:56,000 --> 00:35:58,000 Υποθέτω ότι δίνει ακριβώς ισχύει την τιμή 1. 504 00:35:58,000 --> 00:36:01,000 Ναι. Τι θα συμβεί αν το αλλάξουμε αυτό να false; 505 00:36:01,000 --> 00:36:04,000 [Φοιτητικό] 7. 506 00:36:04,000 --> 00:36:09,000 Ναι, ώστε να θυμάστε, όπου μιλάμε για αυτές τις δυαδικές τιμές, 507 00:36:09,000 --> 00:36:12,000 1 είναι για, 0 είναι μακριά; 508 00:36:12,000 --> 00:36:17,000 Τώρα έχουμε αλήθεια είναι 1, 0 είναι ψευδής, 509 00:36:17,000 --> 00:36:21,000 και μπορεί να μην έχετε δει αυτό στα παραδείγματα C που έχουμε κάνει αυτό το παρελθόν εξάμηνο, 510 00:36:21,000 --> 00:36:27,000 αλλά ιστορικά ο τύπος bool στην C δεν έχει ένα πραγματικό τύπο, 511 00:36:27,000 --> 00:36:32,000 έτσι οι άνθρωποι έχουν χρησιμοποιήσει 0 και 1 στο χώρο του αληθές και ψευδές. 512 00:36:32,000 --> 00:36:35,000 Αυτό είναι μια εκδήλωση που. 513 00:36:35,000 --> 00:36:39,000 >> Εντάξει, έτσι ώστε το ένα σημαντικό μέρος για όλα αυτά 514 00:36:39,000 --> 00:36:41,000 είναι ότι έχουμε αυτούς τους διαφορετικούς τύπους. 515 00:36:41,000 --> 00:36:43,000 Μπορούν να αλληλεπιδρούν μεταξύ τους. 516 00:36:43,000 --> 00:36:49,000 Μπορούν συχνά αλληλεπιδρούν μεταξύ τους με τρόπους που είναι ωραία, όπως έχουμε δει εδώ. 517 00:36:49,000 --> 00:36:53,000 Είναι ωραίο να είναι σε θέση να έχουν σειρά 1 και τον αριθμό 2, προσθέστε τους μαζί και να πάρετε 3. 518 00:36:53,000 --> 00:36:55,000 Αυτό είναι λογικό. 519 00:36:55,000 --> 00:36:59,000 Ωστόσο, όταν είστε γραπτώς ιστοσελίδες, και ειδικά όταν είστε επεξεργασία 520 00:36:59,000 --> 00:37:04,000 είσοδο του χρήστη, έτσι λένε έχετε γράψει μια μορφή web 521 00:37:04,000 --> 00:37:09,000 που συλλέγει πληροφορίες από τον χρήστη και, στη συνέχεια πηγαίνει για την επεξεργασία 522 00:37:09,000 --> 00:37:13,000 στο πίσω άκρο, από την πλευρά του διακομιστή σε κώδικα PHP σας 523 00:37:13,000 --> 00:37:18,000 αν είστε αναμένει ότι η τιμή που ο χρήστης πληκτρολογήσει και υποβάλλεται 524 00:37:18,000 --> 00:37:23,000 στη φόρμα σας να είναι ένας ακέραιος ή να είναι ένας αριθμός κινητής υποδιαστολής ή κάτι τέτοιο 525 00:37:23,000 --> 00:37:29,000 θα πρέπει να ρίξει ρητά 526 00:37:29,000 --> 00:37:34,000 και στη συνέχεια, κάντε κάποιο είδος ελέγχου. 527 00:37:34,000 --> 00:37:41,000 >> Δεν θέλετε να βασίζεστε μόνο σε αυτό το σύστημα juggling τύπου για να κάνει τα πράγματα λειτουργούν, 528 00:37:41,000 --> 00:37:48,000 κυρίως για λόγους ασφαλείας και μόνο για την ευρωστία της ιστοσελίδας σας. 529 00:37:48,000 --> 00:37:51,000 Απλά κάτι που πρέπει να θυμάστε ότι κάθε φορά που είστε χειρισμό δεδομένων φόρμας, 530 00:37:51,000 --> 00:37:57,000 κάτι που έρχεται στη θέση τους ή get superglobals 531 00:37:57,000 --> 00:38:01,000 βεβαιωθείτε ότι έχετε επικυρώσει πάντα και να το μετατρέψει και να typecast. 532 00:38:01,000 --> 00:38:04,000 Και ακριβώς όπως μιλούσαμε για μια στιγμή πριν την στοιχειοθεσία 533 00:38:04,000 --> 00:38:08,000 στην PHP είναι ακριβώς η ίδια όπως και στην C, όπου έχετε τις παρενθέσεις 534 00:38:08,000 --> 00:38:14,000 και τότε ο τύπος. 535 00:38:14,000 --> 00:38:16,000 Κρατήστε αυτό κατά νου. 536 00:38:16,000 --> 00:38:19,000 Μια λειτουργία που θα έρθει σε πρακτικό όταν το κάνετε αυτό 537 00:38:19,000 --> 00:38:22,000 το έχουμε χρησιμοποιήσει-και αυτό είναι το είδος του σαν ένα μέρος- 538 00:38:22,000 --> 00:38:27,000 έχουμε τη χρήση αυτής της λειτουργίας gettype εδώ 539 00:38:27,000 --> 00:38:30,000 να καταλάβω τον τύπο μιας μεταβλητής, 540 00:38:30,000 --> 00:38:37,000 και ενώ αυτό είναι βολικό για τον εντοπισμό σφαλμάτων και να δούμε τι είδους μιας μεταβλητής είναι 541 00:38:37,000 --> 00:38:42,000 δεν θέλετε να χρησιμοποιήσετε αυτήν, για παράδειγμα, σε μια κατάσταση όπου 542 00:38:42,000 --> 00:38:57,000 είστε έλεγχο για να δούμε αν gettype των $ var = ακέραιος κάνουμε κάτι. 543 00:38:57,000 --> 00:39:01,000 Αυτό είναι κακό, κακό, κακό. 544 00:39:01,000 --> 00:39:09,000 Αντ 'αυτού υπάρχουν αυτές οι λειτουργίες είναι ακέραιος αριθμός που ονομάζεται, είναι string, 545 00:39:09,000 --> 00:39:14,000 Είναι σειρά που θέλετε να χρησιμοποιήσετε αντ 'αυτού, οπότε σε αυτή την περίπτωση 546 00:39:14,000 --> 00:39:18,000 ό, τι θα ήθελα να κάνω αντί αυτόν τον τύπο εδώ 547 00:39:18,000 --> 00:39:31,000 είναι η χρήση είναι ακέραιος var. 548 00:39:31,000 --> 00:39:37,000 Και από όπου και αν συχνά αναφέρεται είναι is_ * με την έννοια ότι θα μπορούσε να αντικαταστήσει την * με ακέραιο αριθμό, 549 00:39:37,000 --> 00:39:43,000 string, κ.λπ., και μόνο για να βεβαιωθείτε ότι πραγματικά γρήγορα 550 00:39:43,000 --> 00:39:50,000 είναι αυτό είναι int php. 551 00:39:50,000 --> 00:39:59,000 Μοιάζει που μπορείτε να κάνετε είναι είτε int ή υπάρχει ακέραιος, καθώς; 552 00:39:59,000 --> 00:40:06,000 Ναι, το ψευδώνυμο, έτσι ακέραιο int ψευδώνυμα. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Πώς τα πάμε; 555 00:40:17,000 --> 00:40:20,000 Ας επιταχύνει το ρυθμό λίγο. 556 00:40:20,000 --> 00:40:24,000 Τώρα θα πάμε να μιλήσουμε για πίνακες, έτσι ώστε να μπορείτε να δείτε 557 00:40:24,000 --> 00:40:28,000 στο επόμενο μέρος του spec μιλάμε για το πώς συστοιχίες σε PHP 558 00:40:28,000 --> 00:40:31,000 είναι ελαφρώς διαφορετικές απ 'ότι είναι στο C. 559 00:40:31,000 --> 00:40:34,000 Στην πραγματικότητα, είναι το είδος του ένα αμάλγαμα του 560 00:40:34,000 --> 00:40:36,000 οι πίνακες που έχετε έρθει να ξέρουμε και αγαπάμε σε C 561 00:40:36,000 --> 00:40:40,000 όπου όλα είναι του ίδιου τύπου 562 00:40:40,000 --> 00:40:43,000 αποθηκεύονται διαδοχικά και συνεχόμενα στη μνήμη, 563 00:40:43,000 --> 00:40:46,000 και έχετε αυτά τα αριθμητικά δείκτες. 564 00:40:46,000 --> 00:40:49,000 Έχετε δείκτη 0, ο δείκτης 1, δείκτης 2, 565 00:40:49,000 --> 00:40:53,000 και μπορείτε να αποθηκεύσετε αυτές τις τιμές σε δείκτες. 566 00:40:53,000 --> 00:40:57,000 Μπορείτε επίσης σε C, όταν έγραψε Ορθογράφος, πολλοί από εσάς 567 00:40:57,000 --> 00:41:00,000 έκανε την προσέγγιση hash πίνακα, και είδατε ότι εκεί είχε 568 00:41:00,000 --> 00:41:03,000 ένα διαφορετικό είδος της αποθήκευσης, όπου ήμασταν χαρτογράφηση 569 00:41:03,000 --> 00:41:07,000 το κλειδί για μια τιμή, έτσι ώστε όταν προσπάθησε να αποθηκεύσετε κάτι σε πίνακα κατακερματισμού 570 00:41:07,000 --> 00:41:11,000 θα έπρεπε να διευκρινιστεί ότι θα ήθελε να το αποθηκεύσετε με ένα ειδικό κλειδί, 571 00:41:11,000 --> 00:41:17,000 και ότι οι βασικές καθοριστεί η θέση της αξίας και όπου θα πρέπει να αποθηκεύονται. 572 00:41:17,000 --> 00:41:22,000 Έχετε είδος πήρε και τις δύο αυτές έννοιες που συμβαίνουν την ίδια στιγμή σε μια σειρά PHP, 573 00:41:22,000 --> 00:41:27,000 και ως εκ τούτου, καλούμε συχνά αυτές τις συνεταιριστικές συστοιχίες 574 00:41:27,000 --> 00:41:33,000 όπου είμαστε συνδέει ένα κλειδί σε μια τιμή. 575 00:41:33,000 --> 00:41:39,000 Σε αυτό το επόμενο μέρος μιλάμε για μια απλή σειρά PHP 576 00:41:39,000 --> 00:41:45,000 όπου έχουμε πλήκτρα a, b, και c, 577 00:41:45,000 --> 00:41:53,000 όλες οι χορδές, χαρτογράφηση για τους ακέραιους αριθμούς 1, 2, και 3. 578 00:41:53,000 --> 00:41:57,000 Και μπορείτε να έχετε τα κλειδιά διαφόρων τύπων. 579 00:41:57,000 --> 00:42:00,000 >> Μπορείτε να έχετε μερικά πλήκτρα που είναι χορδές, μερικά πλήκτρα που είναι ακέραιοι αριθμοί. 580 00:42:00,000 --> 00:42:03,000 Μπορείτε να έχετε τις τιμές των διαφόρων τύπων. 581 00:42:03,000 --> 00:42:06,000 Μπορείτε να έχετε μια τιμή που είναι ένα string, μια τιμή που είναι ένας ακέραιος, 582 00:42:06,000 --> 00:42:11,000 μια τιμή που είναι ένα αντικείμενο ή άλλο συστοιχία, για παράδειγμα, 583 00:42:11,000 --> 00:42:16,000 όλα στο ίδιο αντικείμενο array, το οποίο είναι το είδος της παράξενο. 584 00:42:16,000 --> 00:42:20,000 Δεν χρειάζεται να έχετε έναν πίνακα που πήρε μόνο έναν τύπο στοιχείου σε αυτό. 585 00:42:20,000 --> 00:42:26,000 Μπορείτε να έχετε πολλά διαφορετικά πράγματα που συμβαίνουν εκεί. 586 00:42:26,000 --> 00:42:33,000 Το άλλο πράγμα που πρέπει να σημειωθεί είναι ότι όταν βλέπεις κάτι σαν αυτό στον κώδικά σας, 587 00:42:33,000 --> 00:42:38,000 η οποία ισχύει σε PHP για να δηλώσει έναν πίνακα ακριβώς όπως αυτό, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 που θα δηλώνουν την αρχική τιμή $ arr να είναι αυτή η σειρά. 589 00:42:43,000 --> 00:42:48,000 Αλλά αυτό που είστε πραγματικά να πάρει κάτω από το καπό είναι αυτό το είδος της έμμεσης 590 00:42:48,000 --> 00:42:55,000 γενιά των κλειδιών, όπου έχουμε 0-0, 1 έως 1, 2 για 2, 3 έως 3. 591 00:42:55,000 --> 00:42:59,000 Και αποδεικνύεται ότι ακόμα και αν έχετε μια σειρά σαν αυτόν τον τύπο εδώ 592 00:42:59,000 --> 00:43:03,000 όπου έχετε ένα, β και γ, όπως τα πλήκτρα 593 00:43:03,000 --> 00:43:09,000 και στη συνέχεια μπορείτε να αρχίσετε να χρησιμοποιείτε τη μέθοδο array ώθηση για να αρχίσετε να χρησιμοποιείτε αυτό το array όπως μια στοίβα, 594 00:43:09,000 --> 00:43:12,000 ώστε να μπορείτε να δείτε ότι αυτό το αντικείμενο πίνακα, αυτή η σειρά είναι πραγματικά υπερβολικής επιβάρυνσης. 595 00:43:12,000 --> 00:43:15,000 Μπορούμε να το χρησιμοποιήσετε ως μια σειρά. Μπορούμε να το χρησιμοποιήσετε ως ένα πίνακα κατακερματισμού. 596 00:43:15,000 --> 00:43:19,000 Μπορούμε να το χρησιμοποιήσετε ως μια στοίβα. 597 00:43:19,000 --> 00:43:22,000 Όταν ξεκινάτε πιέζει τα πράγματα σε αυτό το φάσμα 598 00:43:22,000 --> 00:43:30,000 το πρώτο πράγμα που ωθεί σε αυτό θα είναι δείκτης 0 και, στη συνέχεια δείκτη 1 και δείκτη 2. 599 00:43:30,000 --> 00:43:33,000 Μπορείτε να πάρετε αυτό το είδος της έμμεσης παραγωγής των κλειδιών 600 00:43:33,000 --> 00:43:38,000 εκτός και αν αναφέρεται ρητά τους. 601 00:43:38,000 --> 00:43:43,000 Ο τρόπος που έχετε καθορίσει ρητά κλειδιά, φυσικά, είναι με τη χρήση αυτής της σημειογραφίας βραχίονα, 602 00:43:43,000 --> 00:43:48,000 η οποία είναι παρόμοια με συστοιχίες εκτός του ότι αντί να επιτρέπει μόνο 603 00:43:48,000 --> 00:43:54,000 ακέραιος εδώ, τώρα θα αφήσουμε τίποτα. 604 00:43:54,000 --> 00:43:57,000 Αν θέλετε να σας κλειδί είναι ένα string, θα το ορίσετε σαν αυτό. 605 00:43:57,000 --> 00:44:06,000 Αν θέλετε να είναι ένα int, μπορείτε να καθορίσετε με το int που θέλετε να χρησιμοποιήσετε. 606 00:44:06,000 --> 00:44:13,000 >> Ερωτήσεις σχετικά με την μέχρι τώρα; 607 00:44:13,000 --> 00:44:18,000 Ένα από τα ωραία πράγματα για αυτή την ιδέα 608 00:44:18,000 --> 00:44:26,000 είναι ότι μπορείτε μόνο να έχετε πάντα μία τιμή αποθηκεύεται με ένα συγκεκριμένο κλειδί. 609 00:44:26,000 --> 00:44:32,000 Αν πάμε πίσω για να μας συσκευή, επιτρέψτε μου να διαγράψετε κάποια από αυτά τα πράγματα. 610 00:44:32,000 --> 00:44:47,000 Και ας πούμε ότι προετοιμάσει μια σειρά για να είναι 0, 1, 2, γίνει. 611 00:44:47,000 --> 00:44:55,000 Αν τώρα ξέρω ότι, για παράδειγμα, αν έχω echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Είμαι πρόκειται να πάρει η τιμή 0 εκτυπώνονται, 613 00:44:59,000 --> 00:45:05,000 και δεδομένου ότι δεν μπορεί να υπάρξει μόνο ποτέ να είναι μια τιμή που είναι αποθηκευμένη για ένα συγκεκριμένο κλειδί 614 00:45:05,000 --> 00:45:11,000 αν έχω αποθηκεύσει κάτι στο $ arr [0], πω, 615 00:45:11,000 --> 00:45:16,000 τότε ξέρω πότε echo $ arr [0] και πάλι 616 00:45:16,000 --> 00:45:19,000 Είμαι δεν πρόκειται να πάρετε 0 εκτυπωθεί όπως και πριν. 617 00:45:19,000 --> 00:45:24,000 Είμαι μόνο πρόκειται να πάρει ένα. 618 00:45:24,000 --> 00:45:30,000 Έτσι, αυτό είναι σαν να λέει ότι δεν μπορώ να έχω $ arr [0] αποθήκευση 2 διαφορετικές αξίες. 619 00:45:30,000 --> 00:45:34,000 Δεν μπορεί να αποθηκεύσει τόσο 0 και το string ένα, όπως αυτό αντικαθιστά κυριολεκτικά 620 00:45:34,000 --> 00:45:38,000 ό, τι ήταν στα $ arr [0] προηγουμένως. 621 00:45:38,000 --> 00:45:43,000 Ο λόγος Φέρνω αυτό επάνω είναι να τρέξει, να δούμε τι θα συμβεί. 622 00:45:43,000 --> 00:45:47,000 Δείτε εδώ ότι πήρα 0 εκτυπώνονται και στη συνέχεια εδώ κάτω. 623 00:45:47,000 --> 00:45:51,000 Δεν υπάρχει καμία νέα γραμμή εκεί επειδή ήμουν τεμπέλης και δεν τίθεται ότι μέσα 624 00:45:51,000 --> 00:45:54,000 Τι είναι δροσερό για αυτό είναι που μπορούμε να χρησιμοποιήσουμε αυτό ως έναν τρόπο 625 00:45:54,000 --> 00:46:00,000 να συλλάβει την ιδέα ενός συνόλου 626 00:46:00,000 --> 00:46:07,000 όπου δεν μπορούμε να έχουμε πολλαπλά κλειδιά εντός μιας συστοιχίας. 627 00:46:07,000 --> 00:46:10,000 Δεν μπορούμε να έχουμε ίδια πλήκτρα μέσα σε έναν πίνακα. 628 00:46:10,000 --> 00:46:17,000 Δεν μπορώ να έχω πλήκτρο 0 και 1 και αξία πλήκτρο 0 και την αξία ενός 629 00:46:17,000 --> 00:46:21,000 ή το πλήκτρο 0 και αξία αλήθεια. 630 00:46:21,000 --> 00:46:27,000 Τα πλήκτρα είναι όλα-υπάρχει μόνο 1 κλειδί στον πίνακα. 631 00:46:27,000 --> 00:46:32,000 Ακόμα κι αν μπορείτε να έχετε την ίδια αποθηκευμένη αξία 632 00:46:32,000 --> 00:46:35,000 πολλές φορές στο κάτω συστοιχία διαφορετικών κλειδιών 633 00:46:35,000 --> 00:46:42,000 δεν είναι δυνατόν να έχουν την ίδια πλήκτρα πολλές φορές σε PHP-array σας. 634 00:46:42,000 --> 00:46:47,000 >> Αν δούμε σε αυτό το επόμενο πρόβλημα, unique.php, 635 00:46:47,000 --> 00:46:51,000 όπου θέλουμε να ανοίξουμε ένα αρχείο PHP 636 00:46:51,000 --> 00:46:54,000 που περιέχει μια λίστα των χορδών, μια σειρά ανά γραμμή, 637 00:46:54,000 --> 00:47:01,000 και θέλουμε να βρούμε όλες τις μοναδικές σειρές σε αυτό το αρχείο 638 00:47:01,000 --> 00:47:06,000 το μόνο που έχουμε να κάνουμε είναι να χρησιμοποιήσουμε μία από αυτές τις PHP συστοιχίες 639 00:47:06,000 --> 00:47:12,000 και να χρησιμοποιήσετε τις χορδές στο αρχείο ως τα κλειδιά αυτού του πίνακα 640 00:47:12,000 --> 00:47:17,000 και να κρατήσει την ενημέρωση σειρά μας, καθώς αποθηκεύουν αυτά τα νέα κλειδιά. 641 00:47:17,000 --> 00:47:22,000 Όπως διαβάζουμε κάθε γραμμή από το αρχείο μπορούμε να το αποθηκεύσετε στη συστοιχία, 642 00:47:22,000 --> 00:47:28,000 και στο τέλος θα έχουμε τα κλειδιά μας σε σειρά μας 643 00:47:28,000 --> 00:47:34,000 το σύνολο των μοναδικών ταινιών εντός του αρχείου. 644 00:47:34,000 --> 00:47:37,000 Μήπως αυτό έχει νόημα; 645 00:47:37,000 --> 00:47:41,000 Ας δούμε πώς αυτό λειτουργεί. 646 00:47:41,000 --> 00:47:49,000 Εμείς πάμε για να ανοίξει, σύμφωνα με την προδιαγραφή, ένα νέο αρχείο που ονομάζεται unique.php. 647 00:47:49,000 --> 00:47:58,000 Open. Ωχ, συγνώμη, νέο αρχείο. 648 00:47:58,000 --> 00:48:03,000 Εμείς πάμε για να ξεκινήσει με το ίδιο έναρξης και λήξης ετικέτες. 649 00:48:03,000 --> 00:48:17,000 Εμείς πάμε για να το αποθηκεύσετε στο τμήμα 9, και θα πάμε να το ονομάσουμε unique.php. 650 00:48:17,000 --> 00:48:25,000 Εντάξει, τώρα μεγεθύνετε 651 00:48:25,000 --> 00:48:32,000 Η ιδέα εδώ είναι να ανοίξετε ένα αρχείο, 652 00:48:32,000 --> 00:48:38,000 διαβάζονται σε συνδυασμό με το αρχείο γραμμή. 653 00:48:38,000 --> 00:48:46,000 Για κάθε γραμμή στο αρχείο 654 00:48:46,000 --> 00:48:51,000 θα έχουμε μια σειρά όπου έχουμε 655 00:48:51,000 --> 00:49:03,000  η γραμμή ως βασική μας. 656 00:49:03,000 --> 00:49:09,000 Και στη συνέχεια, όταν φτάσουμε στο τέλος εδώ 657 00:49:09,000 --> 00:49:17,000 Κλειδιά $ arr είναι οι μοναδικές γραμμές 658 00:49:17,000 --> 00:49:25,000 από το αρχείο αφού γνωρίζουμε ότι αν έβαλα σε γραμμή αυτού του πίνακα 659 00:49:25,000 --> 00:49:33,000 πολλές φορές θα κρατήσει μόνο παρακάμπτοντας την παλιά τιμή, 660 00:49:33,000 --> 00:49:46,000 και μπορούμε να βάλουμε πραγματικά γραμμή σε σειρά, όπως η ίδια ακριβώς έτσι. 661 00:49:46,000 --> 00:49:48,000 >> Αυτό είναι το είδος της παράξενο. 662 00:49:48,000 --> 00:49:52,000 Είμαστε αποθήκευση το ίδιο ζεύγος κλειδιών αξία ξανά και ξανά και ξανά, 663 00:49:52,000 --> 00:50:00,000 αλλά από τη στιγμή που είναι εγγυημένο ότι θα υπάρξουν μόνο 1 κλειδί που ονομάζεται γραμμή 664 00:50:00,000 --> 00:50:05,000 οπότε αν έχουμε ένα αρχείο που να λέει-ένα αρχείο από τους θορύβους των ζώων και έχει υφάδι, υφάδι, 665 00:50:05,000 --> 00:50:11,000 νιαούρισμα, νιαούρισμα, moo, moo, και κάθε φορά που διαβάζουμε ένα θόρυβο έξω ζώων 666 00:50:11,000 --> 00:50:15,000 όπως υφάδι και να το αποθηκεύσετε σε σειρά μας έχουμε υφάδι, και στη συνέχεια η δεύτερη φορά 667 00:50:15,000 --> 00:50:20,000 αποθηκεύουμε το υφάδι θα αντικαταστήσει την πρώτη φορά που θα αποθηκευτεί. 668 00:50:20,000 --> 00:50:25,000 Στο τέλος θα έχουμε μόνο μία καταχώρηση στον πίνακα 669 00:50:25,000 --> 00:50:33,000 για καθένα από τα θορύβους ζώων σε ζώο αρχείο θορύβους μας. 670 00:50:33,000 --> 00:50:41,000 Μήπως εσείς αισθάνεστε σίγουροι ότι μπορείτε να αντιμετωπίσουν το άνοιγμα ενός αρχείου σε PHP; 671 00:50:41,000 --> 00:50:45,000 Ένας τρόπος για να γίνει αυτό, ας πάμε πάνω από αυτό τον τρόπο γρήγορα-ένα για να το κάνει 672 00:50:45,000 --> 00:50:50,000 είναι με fopen, όπως είδαμε νωρίτερα. 673 00:50:50,000 --> 00:50:55,000 Μπορείτε να fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Μπορείτε να το ανοίξετε σε κατάσταση ανάγνωσης, όπως ακριβώς και στην C. 675 00:50:59,000 --> 00:51:02,000 Αυτό είναι ένα απολύτως καλός τρόπος για να το κάνουμε. 676 00:51:02,000 --> 00:51:05,000 Μπορείτε, επίσης, στη συνέχεια, για την ανάγνωση στη γραμμή από το αρχείο της γραμμής 677 00:51:05,000 --> 00:51:12,000 έχουν τις ίδιες λειτουργίες, πολλοί από αυτούς, που σας έκανε σε C. 678 00:51:12,000 --> 00:51:14,000 Έχετε fgets. 679 00:51:14,000 --> 00:51:17,000 Έχετε feof, αν δεν μας αρέσει με χρήση της 680 00:51:17,000 --> 00:51:22,000 διότι, θυμηθείτε, αυτό δεν ήταν μεγάλη σε C. 681 00:51:22,000 --> 00:51:25,000 Μπορείτε να το κάνετε με τον ίδιο τρόπο, 682 00:51:25,000 --> 00:51:34,000 αλλά εδώ είναι ένα πραγματικά δροσερό πράγμα. 683 00:51:34,000 --> 00:51:41,000 Λυπούμαστε, αλλά δεν θέλω να κάνω $ file, αλλά υπάρχει μια λειτουργία που ονομάζεται αρχείο σε PHP, 684 00:51:41,000 --> 00:51:47,000 και αυτή η λειτουργία ακριβώς εδώ είναι δροσερό, γιατί διαβάζει όλο το περιεχόμενο 685 00:51:47,000 --> 00:51:52,000 του αρχείου που θα ορίσετε, τόσο some_file.txt, 686 00:51:52,000 --> 00:51:56,000 διαβάζει όλο το περιεχόμενο αυτού του αρχείου σε μια σειρά 687 00:51:56,000 --> 00:52:03,000 και στη συνέχεια σας επιτρέπει να επαναλάβει πάνω του, η οποία είναι αρκετά ικανό. 688 00:52:03,000 --> 00:52:07,000 >> Αν πάμε, για παράδειγμα, του πλοηγού μας 689 00:52:07,000 --> 00:52:14,000 και κοιτάμε το Google για αυτό το αρχείο PHP 690 00:52:14,000 --> 00:52:23,000 μπορείτε να δείτε εδώ ότι το εγχειρίδιο μας λέει ότι το αρχείο διαβάζει ολόκληρο το αρχείο σε μια σειρά, 691 00:52:23,000 --> 00:52:27,000 και μπορούμε να file_get_contents να επιστρέψει τα περιεχόμενα ενός αρχείου ως συμβολοσειρά, 692 00:52:27,000 --> 00:52:30,000 αλλά συνήθως παίρνει απλώς ως μια σειρά είναι πραγματικά ωραία, επειδή ό, τι κάνει 693 00:52:30,000 --> 00:52:33,000 είναι αυτό που σπάει έτσι ώστε κάθε στοιχείο 694 00:52:33,000 --> 00:52:37,000 στη διάταξη είναι μία γραμμή του αρχείου, 695 00:52:37,000 --> 00:52:41,000 οπότε αν κοιτάξουμε αρχείο 0, αυτή είναι η πρώτη γραμμή του αρχείου. 696 00:52:41,000 --> 00:52:46,000 File 1, δεύτερη γραμμή, φάκελος 2, τρίτη γραμμή, και ούτω καθεξής και ούτω καθεξής. 697 00:52:46,000 --> 00:52:50,000 Δεν θα ήταν ωραίο αν αυτό ήταν το μόνο που είχε να κάνει σε C; 698 00:52:50,000 --> 00:52:53,000 Αρκετά ικανό. 699 00:52:53,000 --> 00:52:59,000 David έδειξε αυτό σε διάλεξη, και το ιδίωμα που έδειξε ήταν 700 00:52:59,000 --> 00:53:03,000 ότι, παράλληλα με το πρότυπο μας για βρόχου στην PHP να τις είχαμε και 701 00:53:03,000 --> 00:53:09,000 για ($ i = 0? θ <10? i + +), 702 00:53:09,000 --> 00:53:16,000 και μπορείτε να το κάνετε αυτό σε PHP πάρα πολύ, το ίδιο πράγμα- 703 00:53:16,000 --> 00:53:27,000 έχουμε και αυτό το δροσερό κατασκεύασμα που ονομάζεται foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach είναι πολύ βολικό όταν πάνω από την επανάληψη ή συστοιχίες αυτές τις δομές δεδομένων 705 00:53:32,000 --> 00:53:36,000 επειδή σας επιτρέπει να τραβήξετε έξω κάθε στοιχείο του πίνακα 706 00:53:36,000 --> 00:53:42,000 χωρίς να χρειάζεται να το κάνετε μόνοι σας με μη αυτόματο τρόπο τη δημιουργία ευρετηρίου, 707 00:53:42,000 --> 00:53:46,000 χωρίς να χρειάζεται να δημιουργήσετε με μη αυτόματο τρόπο μια μεταβλητή δείκτη, την αύξησή της, 708 00:53:46,000 --> 00:53:51,000 τραβήξτε προς τα έξω την τιμή στον πίνακα σε εκείνο το σημείο, γιατί αυτό είναι ένα πολύ κοινό πράγμα που κάνει. 709 00:53:51,000 --> 00:53:54,000 >> Πιθανώς να έχετε κάνει ότι τόνοι φορές όταν κάνατε πράγματα C 710 00:53:54,000 --> 00:54:00,000 πάνω από το εξάμηνο, οπότε με αυτό το foreach 711 00:54:00,000 --> 00:54:06,000 μπορούμε βρόχο πάνω από το αρχείο αυτού του πίνακα, 712 00:54:06,000 --> 00:54:12,000 και η σύνταξη είναι ότι θέλουμε τώρα βρόχο πάνω από αυτού του πίνακα 713 00:54:12,000 --> 00:54:18,000 και διευκρινίζει ότι η μεταβλητή θα πάμε να χρησιμοποιήσετε για να αποθηκεύσετε 714 00:54:18,000 --> 00:54:27,000 το στοιχείο αυτής της συστοιχίας τοπικά, τοπικά στο πεδίο αυτού του βρόχου foreach, 715 00:54:27,000 --> 00:54:32,000 είναι θα πάμε να το ονομάσουμε γραμμή. 716 00:54:32,000 --> 00:54:38,000 Εάν είναι ένα αρχείο του μόνο λόγια και υπάρχει μια λέξη σε μια γραμμή 717 00:54:38,000 --> 00:54:43,000 θα μπορούσαμε να το ονομάσουμε λέξη, καθώς, πραγματικά ακριβώς να σας δώσει αυτό το όνομα, 718 00:54:43,000 --> 00:54:49,000 ό, τι θέλετε να το ονομάσετε, 719 00:54:49,000 --> 00:55:02,000 και στη συνέχεια, μέσα στο βρόχο που μπορείτε να κάνετε ό, τι θέλετε με αυτή τη μεταβλητή γραμμή. 720 00:55:02,000 --> 00:55:08,000 Αν αυτό δεν είναι αρκετό για να πάρει την αξία του πίνακα και μπορείτε επίσης να θελήσετε να πάρετε 721 00:55:08,000 --> 00:55:17,000 ο δείκτης μαζί με αυτό μπορείτε να καθορίσετε ένα όνομα για το ευρετήριο 722 00:55:17,000 --> 00:55:22,000 καθώς και την αξία, και τώρα έχετε πρόσβαση σε 2 μεταβλητές. 723 00:55:22,000 --> 00:55:26,000 Έχετε $ i γραμμή και 724 00:55:26,000 --> 00:55:30,000 όπου $ i είναι ο δείκτης στον πίνακα, 725 00:55:30,000 --> 00:55:38,000 και η γραμμή είναι η γραμμή που ανακτώνται από το αρχείο. 726 00:55:38,000 --> 00:55:49,000 Για παράδειγμα, αν θέλαμε να εκτυπώσετε 0 ηχώ γραμμή του αρχείου όπως αυτό, 727 00:55:49,000 --> 00:55:57,000 θα μπορούσαμε να το κάνουμε ακριβώς όπως αυτό, "Γραμμή $ i του αρχείου είναι $ γραμμή," 728 00:55:57,000 --> 00:56:02,000 και εδώ είναι κάτι που επίσης δεν έχουν δει ακόμα ούτε 729 00:56:02,000 --> 00:56:13,000 όπου έχω μόνο εντελώς αγνοούνται πάνω από% d όλο αυτό το% s επιχείρηση 730 00:56:13,000 --> 00:56:16,000 ότι θα έπρεπε να ασχοληθεί με το C, και αντ 'αυτού έχω πάει κατ' ευθείαν στο 731 00:56:16,000 --> 00:56:19,000 γραπτώς τις μεταβλητές στην ουρά σειρά μου. 732 00:56:19,000 --> 00:56:23,000 >> Αυτό ονομάζεται μεταβλητή παρεμβολή, παρεμβολή σειρά 733 00:56:23,000 --> 00:56:26,000 Όπου και αν γέμιση τις μεταβλητές δεξιά, και ο διερμηνέας PHP 734 00:56:26,000 --> 00:56:31,000 Είναι αρκετά έξυπνος, όταν διαβάζει μέσα από μια σειρά που αρχίζει με διπλά εισαγωγικά- 735 00:56:31,000 --> 00:56:34,000 δεν μονά εισαγωγικά, με ενιαίο εισαγωγικά δεν μπορείτε να το κάνετε αυτό- 736 00:56:34,000 --> 00:56:38,000 αλλά με διπλά εισαγωγικά, όπως να διαβάζει μέσα από αυτό ψάχνει για τις μεταβλητές. 737 00:56:38,000 --> 00:56:42,000 Είναι το κυνήγι τους κάτω, και αν βλέπει μεταβλητές θα πάρει την τιμή της μεταβλητής 738 00:56:42,000 --> 00:56:47,000 και πράγματα στη σειρά, αν μπορεί να το μετατρέψει σε μια παράσταση συμβολοσειράς, 739 00:56:47,000 --> 00:56:51,000 η οποία είναι αρκετά ικανό. 740 00:56:51,000 --> 00:56:56,000 Προς το παρόν, ας σχολιάσει το υπόλοιπο των πάντων, 741 00:56:56,000 --> 00:57:00,000 αποθηκεύσετε αυτό, και τι μπορούμε να κάνουμε τώρα είναι να μπορούμε να ανοίξουμε ένα αρχείο 742 00:57:00,000 --> 00:57:06,000 ότι μπορούμε να ονομάσουμε some_file.txt-ας δημιουργήσουμε ένα νέο αρχείο- 743 00:57:06,000 --> 00:57:15,000 και μπορούμε να βάλουμε σε ένα μάτσο ανοησίες πράγματα εδώ μόνο για να δοκιμάσουν τα πάντα, 744 00:57:15,000 --> 00:57:25,000 αποθηκεύσετε, καλέστε το some_file.txt, όπως κάνω εδώ στην κορυφή, 745 00:57:25,000 --> 00:57:33,000 και τώρα αν σμίκρυνση ακριβώς για να βεβαιωθείτε ότι όλα είναι στον ίδιο κατάλογο- 746 00:57:33,000 --> 00:57:36,000 μοιάζει έχω unique.php και some_file.txt στον ίδιο κατάλογο. 747 00:57:36,000 --> 00:57:42,000 Αν τρέξω php unique.php 748 00:57:42,000 --> 00:57:51,000 δούμε πώς θα εκτυπώνει κάθε γραμμή στο αρχείο μου και τι είναι η γραμμή; 749 00:57:51,000 --> 00:57:56,000 >> Αυτό είναι αρκετά ισχυρό, έτσι δεν είναι; 750 00:57:56,000 --> 00:58:03,000 Κοιτάξτε, πήρε 3 γραμμές του κώδικα για να ανοίξει ένα αρχείο. 751 00:58:03,000 --> 00:58:08,000 Λοιπόν, 4 γραμμές κώδικα. Δεν μπορώ να μετρήσω σήμερα, σαφώς. 752 00:58:08,000 --> 00:58:13,000 Αλλά πραγματικά ενδιαφέρουσα μόλις 2 γραμμές κώδικα, επειδή τα άλλα 2 ήταν τα άγκιστρα, 753 00:58:13,000 --> 00:58:17,000 αλλά σε αυτή την πολύ κωδικό ήμασταν σε θέση να ανοίξετε ένα αρχείο, αντικείμενα σε αυτό, 754 00:58:17,000 --> 00:58:20,000 τραβήξτε προς τα έξω τον αριθμό της γραμμής και τη γραμμή ίδια 755 00:58:20,000 --> 00:58:24,000 και να το εκτυπώσετε. 756 00:58:24,000 --> 00:58:26,000 Cool πράγματα. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Έχω μια ερώτηση σχετικά με τη σύνταξη. 758 00:58:28,000 --> 00:58:33,000 Έτσι foreach ασχολείται με κάθε γραμμή του αρχείου που ανοίγετε, 759 00:58:33,000 --> 00:58:37,000 και στη συνέχεια, όταν θέλετε να κάνετε τα πράγματα με κάθε γραμμή το κάνετε ακριβώς όπως 760 00:58:37,000 --> 00:58:39,000 και στη συνέχεια, συνδέουν την τιμή. 761 00:58:39,000 --> 00:58:41,000 [Nate H] Τι μπορείτε να κάνετε εδώ, το ερώτημα ήταν 762 00:58:41,000 --> 00:58:46,000 η foreach έχει να κάνει με τη σειρά, έτσι ώστε η σύνταξη foreach 763 00:58:46,000 --> 00:58:51,000 είναι πραγματικά foreach, και παρατηρήστε ότι δεν υπάρχει χώρος 764 00:58:51,000 --> 00:58:53,000 ή οτιδήποτε μεταξύ του και για την κάθε μία. 765 00:58:53,000 --> 00:58:56,000 Θα πρέπει να πάει δεξιά δίπλα στο άλλο, 766 00:58:56,000 --> 00:59:00,000 και στη συνέχεια παίρνει σε μία συστοιχία, 767 00:59:00,000 --> 00:59:05,000 και στη συνέχεια να έχετε αυτήν την άλλη λέξη-κλειδί, όπως ονομάζεται, που πρέπει να είναι εκεί, 768 00:59:05,000 --> 00:59:11,000 και στη συνέχεια, μετά την ως μπορείτε να βάλετε είτε ένα όνομα μεταβλητής, 769 00:59:11,000 --> 00:59:14,000 στην οποία περίπτωση θα πάμε να το τράβηγμα από τις τιμές του πίνακα, 770 00:59:14,000 --> 00:59:20,000 όχι οι δείκτες, ή αν το κάνεις όπως έχουμε γράψει κάτω 771 00:59:20,000 --> 00:59:24,000 μπορείτε να πάρετε τα κλειδιά και τις τιμές. 772 00:59:24,000 --> 00:59:33,000 Έχετε foreach στοιχείο του πίνακα ή το ζευγάρι του πίνακα ως πληκτρολογηθεί στην αξία 773 00:59:33,000 --> 00:59:38,000 ή απλά ως αξία. 774 00:59:38,000 --> 00:59:40,000 Ανάλογα με το τι χρειάζεστε, αν δεν χρειάζεστε τα πλήκτρα, 775 00:59:40,000 --> 00:59:42,000 τότε μπορείτε να πάτε με την αξία. 776 00:59:42,000 --> 00:59:45,000 Αν θέλετε τα πλήκτρα μπορείτε να πάτε μαζί τους πάρα πολύ. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Επίσης, συνειδητοποιήσαμε ότι ποτέ δεν δήλωσε το i ή γραμμή. 778 00:59:48,000 --> 00:59:51,000 Πώς γνωρίζουν καν τι είναι; 779 00:59:51,000 --> 00:59:53,000 [Nate H] Τι εννοείτε με τον όρο δηλώνουν; 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Εμείς ποτέ δεν τους είπε τι θ ή γραμμή μέσα. 781 00:59:57,000 --> 01:00:01,000 [Nate H] Ποτέ δεν είπα τον υπολογιστή ή το τι θ γραμμή σημαίνει από την άποψη της- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] ότι είναι ή ότι ευρετήριο αλλά επιλέγουν να φτιάξουν- 783 01:00:05,000 --> 01:00:09,000 [Nate H] Εμείς ποτέ δεν είπε ότι αυτό υποτίθεται ότι είναι ο δείκτης ή το κλειδί και η αξία, 784 01:00:09,000 --> 01:00:13,000 και αυτό γιατί αυτή είναι η PHP διερμηνέα. 785 01:00:13,000 --> 01:00:17,000 Αυτό χρησιμεύει ως δήλωση και λέει εντάξει, το κλειδί θα είναι 786 01:00:17,000 --> 01:00:20,000 μια μεταβλητή που ονομάζεται i αποθηκεύεται σε μια μεταβλητή που ονομάζεται i. 787 01:00:20,000 --> 01:00:24,000 Η τιμή πρόκειται να αποθηκεύονται σε μια μεταβλητή που ονομάζεται γραμμή, 788 01:00:24,000 --> 01:00:28,000 έτσι αυτό χρησιμεύει ως δήλωση αυτών των μεταβλητών 789 01:00:28,000 --> 01:00:35,000 και λέει $ i είναι ένα κλειδί, και $ γραμμή είναι μια αξία. 790 01:00:35,000 --> 01:00:37,000 Ναι, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Αν δεν τα πλήκτρα γίνονται αριθμητικά 792 01:00:41,000 --> 01:00:44,000 πώς να αποφασίσει ποια σειρά πρόκειται να εκτυπώσετε τα πάντα; 793 01:00:44,000 --> 01:00:47,000 Είναι ακριβώς όπως τη σειρά που μπήκε μέσα; 794 01:00:47,000 --> 01:00:51,000 [Nate H] Ας δώσει μια δοκιμή. 795 01:00:51,000 --> 01:00:57,000 Ας δημιουργήσουμε μια μεταβλητή που ονομάζεται σύλλ, 796 01:00:57,000 --> 01:01:06,000 και μπορούμε να κάνουμε ένα πηγαίνει στο 7. 797 01:01:06,000 --> 01:01:19,000 Ας πούμε 0 πηγαίνει σε άλλο πίνακα με 1, 2, ή μήλο. 798 01:01:19,000 --> 01:01:30,000 Ας πούμε 7 πηγαίνει προς 1, β πηγαίνει στο 2, 799 01:01:30,000 --> 01:01:39,000 και 3 πηγαίνει στο 4. 800 01:01:39,000 --> 01:01:44,000 Αυτό είναι το είδος του ένα τρελό αναζητούν παράδειγμα επειδή είμαστε ανάμειξη 801 01:01:44,000 --> 01:01:47,000 χορδές και ακέραιοι σε όλη τη χώρα. 802 01:01:47,000 --> 01:01:50,000 Δεν υπάρχει καμία πραγματική τάξη σε αυτό το φάσμα. 803 01:01:50,000 --> 01:01:55,000 Θέλω να πω, θα μπορούσαμε να παραγγείλετε τα πάντα σε αλφαβητική σειρά με τα πλήκτρα. 804 01:01:55,000 --> 01:01:57,000 Θα μπορούσαμε να παραγγείλετε ό, τι αλφαβητικά από την αξία. 805 01:01:57,000 --> 01:02:00,000 >> Θα μπορούσαμε να προσπαθήσουμε και να λάβει υπόψη το γεγονός ότι κάποιοι είναι χορδές, μερικά είναι ints, 806 01:02:00,000 --> 01:02:03,000 και θα μπορούσαμε να προσπαθήσουμε και να τα μετατρέψετε όλες στον ίδιο τύπο και να δούμε τι θα συμβεί, 807 01:02:03,000 --> 01:02:09,000 ή θα μπορούσαμε να τους εξετάσει στην αξία στην οποία μπήκαμε ήδη τους 808 01:02:09,000 --> 01:02:14,000 όπου βάζουμε αυτόν τον τύπο στην πρώτη, αυτός ο τύπος στο δεύτερο, αυτός ο τύπος στην τρίτη θέση, 809 01:02:14,000 --> 01:02:19,000 αυτός ο τύπος στην τέταρτη θέση, κ.λπ.. 810 01:02:19,000 --> 01:02:23,000 Ας δούμε τι θα συμβεί όταν θα εκτελέσετε αυτόν τον κώδικα. 811 01:02:23,000 --> 01:02:29,000 Αν μετακινηθείτε προς τα κάτω και να κάνουμε το ίδιο είδος του πράγματος, 812 01:02:29,000 --> 01:02:31,000 και εδώ δεν είναι η εκτύπωση των νέων γραμμών. 813 01:02:31,000 --> 01:02:35,000 Όταν το διάβασα τα πράγματα από το αρχείο ήταν συμπεριλαμβανομένων των νέων γραμμών στις τιμές, 814 01:02:35,000 --> 01:02:38,000 η οποία γι 'αυτό εκτυπωθούν όμορφα, ενώ εδώ δεν το έκανε, 815 01:02:38,000 --> 01:02:40,000 έτσι ώστε να είναι ο λόγος που όλα μαζί smushed. 816 01:02:40,000 --> 01:02:44,000 Ας προσθέσουμε σε αυτό νέα γραμμή μόνο για να κάνει τα πράγματα ωραία. 817 01:02:44,000 --> 01:02:51,000 Ας επανάληψη, έτσι και εδώ 818 01:02:51,000 --> 01:02:54,000 δούμε τι συνέβη. 819 01:02:54,000 --> 01:03:00,000 Είναι τυπωμένα τα πάντα στην σειρά με την οποία βάζουμε στη σειρά. 820 01:03:00,000 --> 01:03:10,000 Κάνει διαφυλάξουν την τάξη σε αυτή την έννοια. 821 01:03:10,000 --> 01:03:15,000 >> Πηγαίνοντας πίσω σε αυτό το πρόβλημα της uniques 822 01:03:15,000 --> 01:03:20,000 όπου θέλουμε να είμαστε σε θέση να επαναλάβει πάνω από ένα αρχείο, 823 01:03:20,000 --> 01:03:24,000 και θα σας δώσουμε το some_file.txt, 824 01:03:24,000 --> 01:03:27,000 και θα πάμε να επαναλάβει πάνω του σαν αυτό. 825 01:03:27,000 --> 01:03:31,000 Είπαμε ότι ήθελε να χρησιμοποιήσει μια σειρά για να βεβαιωθείτε ότι είχαμε πήρε όλα του τα 826 01:03:31,000 --> 01:03:36,000 μοναδικές γραμμές από εκεί, και θα μπορούσαμε να το κάνουμε αυτό πολύ εύκολα 827 01:03:36,000 --> 01:03:49,000 με μόνο την αποθήκευση σε έναν πίνακα που δηλώνουν φυσικά εκτός του πεδίου εφαρμογής του βρόχου, 828 01:03:49,000 --> 01:03:55,000 και είπαμε ότι αν χρησιμοποιούσαμε τις γραμμές στο αρχείο, όπως τα κλειδιά σε σειρά μας 829 01:03:55,000 --> 01:03:59,000 αν έχουμε εισέλθει σε μια γραμμή αντίγραφο θα ήμασταν παρακάμπτοντας την προηγούμενη τιμή. 830 01:03:59,000 --> 01:04:08,000 Δεν είναι ποτέ δυνατόν να έχουν 2 κλειδιά τα οποία είναι πανομοιότυπα με την ίδια σειρά. 831 01:04:08,000 --> 01:04:13,000 Μπορούμε να κάνουμε ακριβώς αυτό. 832 01:04:13,000 --> 01:04:17,000 Θα απαλλαγούμε από αυτή τη δήλωση ηχώ εδώ. 833 01:04:17,000 --> 01:04:24,000 Εδώ είμαστε αποθήκευση τη γραμμή στο αρχείο σειρά μας 834 01:04:24,000 --> 01:04:28,000 χρησιμοποιώντας τον εαυτό του ως το κλειδί. 835 01:04:28,000 --> 01:04:32,000 Τίποτα σε αυτό, και αποδεικνύεται ότι δεν χρειάζεται καν αυτό το κλειδί. 836 01:04:32,000 --> 01:04:38,000 Δεν χρειαζόμαστε ότι i μεταβλητή. 837 01:04:38,000 --> 01:04:43,000 Σε αυτό το σημείο, αν επρόκειτο να κάνουμε ένα άλλο βρόχο foreach 838 01:04:43,000 --> 01:04:48,000 και ήμασταν σε βρόχο πάνω από κάθε σύλλ 839 01:04:48,000 --> 01:04:56,000 γραμμή και τώρα αν echo-ουπς, συγγνώμη. 840 01:04:56,000 --> 01:05:00,000 Δεν μπορείτε να χρησιμοποιήσετε το κόμμα. Πρέπει να χρησιμοποιήσουμε αυτό ως λέξη-κλειδί. 841 01:05:00,000 --> 01:05:05,000 Τώρα αν echo γραμμή θα πρέπει να πάρει όλα τα μοναδικά λόγια στο αρχείο. 842 01:05:05,000 --> 01:05:10,000 Αν πάμε μέχρι some_file.txt, 843 01:05:10,000 --> 01:05:19,000 και ας πούμε ότι κάνουμε μήλο, μπανάνα, μήλο, μήλο, μπανάνα, 844 01:05:19,000 --> 01:05:22,000 αν είμαστε εκτύπωση από όλα τα μοναδικά λόγια σε αυτό το αρχείο θα πρέπει να πάρει μόνο 845 01:05:22,000 --> 01:05:30,000 μήλο και μπανάνα για να εκτυπώσετε. 846 01:05:30,000 --> 01:05:36,000 Εάν αποθηκεύσετε αυτό, τώρα εδώ θα σε μεγεθύνετε, 847 01:05:36,000 --> 01:05:44,000 php unique.php, και ta-da. 848 01:05:44,000 --> 01:05:51,000 Έχουμε uniqued επιτυχώς το αρχείο. 849 01:05:51,000 --> 01:05:55,000 >> Το τελευταίο μέρος αυτού του προβλήματος σας ζητά να ταξινομήσετε αυτή σειρά προτού να εκτυπωθούν 850 01:05:55,000 --> 01:05:58,000 επειδή σε αυτό το απλό παράδειγμα ότι έχουμε κάνει μόνο 851 01:05:58,000 --> 01:06:04,000 ήμασταν τυχεροί, υπό την έννοια ότι ο φάκελος- 852 01:06:04,000 --> 01:06:06,000 κάναμε αυτή την σκηνοθετημένη παράδειγμα με μήλα και μπανάνες. 853 01:06:06,000 --> 01:06:08,000 Ήταν ήδη ταξινομημένο. 854 01:06:08,000 --> 01:06:19,000 Αλλά χρησιμοποιώντας την απλή λειτουργία του είδους, μπορείτε να ταξινομήσετε μια σειρά, η οποία είναι αρκετά ικανό. 855 01:06:19,000 --> 01:06:24,000 Το τελευταίο πράγμα που ήθελα να μιλήσω μαζί σας για πολύ γρήγορα 856 01:06:24,000 --> 01:06:31,000 είναι ότι αυτό το είδος της PHP είναι όλα ωραία και καλά, και είναι εξαιρετικά βολικό 857 01:06:31,000 --> 01:06:43,000 να γνωρίζουμε πώς να το κάνουμε, αν ποτέ χρειαστεί να κάνετε λίγο, τα πράγματα γρήγορα προγραμματισμού. 858 01:06:43,000 --> 01:06:48,000 Για παράδειγμα, αν χρειάζεται να γράψετε ένα πρόγραμμα το οποίο, ας πούμε, 859 01:06:48,000 --> 01:06:53,000 βάζει τους πάντες σε τμήματα Είμαι δεν πρόκειται να πάει και να το γράψετε σε C. 860 01:06:53,000 --> 01:06:55,000 Είναι πρόκειται να είναι μακρά. 861 01:06:55,000 --> 01:06:57,000 Είναι πρόκειται να είναι το είδος του πόνου, ειδικά αν υπάρχουν αρχεία που εμπλέκονται, 862 01:06:57,000 --> 01:07:00,000 ακριβώς όπως εσείς έχετε δει. 863 01:07:00,000 --> 01:07:05,000 Είναι τόσο ωραίο που με ακριβώς αυτό το πολύ κώδικα εδώ 864 01:07:05,000 --> 01:07:08,000 ήμασταν σε θέση να σχίσει μέσω ενός αρχείου, τραβήξτε προς τα έξω όλες τις μοναδικές τιμές 865 01:07:08,000 --> 01:07:11,000 και να τις εκτυπώσετε από πίσω. 866 01:07:11,000 --> 01:07:16,000 >> Ωστόσο, για τις αναθέσεις σας, για τα έργα σας, 867 01:07:16,000 --> 01:07:20,000 αν είστε δημιουργία ιστοσελίδων με την PHP είναι η δύναμη που 868 01:07:20,000 --> 01:07:25,000 είμαστε τρέχει PHP αρχεία μας μέσα από αυτό το διερμηνέα, 869 01:07:25,000 --> 01:07:29,000 και ο διερμηνέας επεξεργασία πάντα μέσα στις ετικέτες PHP, 870 01:07:29,000 --> 01:07:34,000 αφήνοντας όλα τα άλλα άθικτη και φτύσιμο από τα αποτελέσματα. 871 01:07:34,000 --> 01:07:40,000 Μπορούμε να το κάνουμε αυτό για να οικοδομήσουμε HTML προγραμματισμού. 872 01:07:40,000 --> 01:07:46,000 Τώρα, αν πάμε πίσω στο spec, το τελευταίο πρόβλημα στο spec 873 01:07:46,000 --> 01:07:56,000 συνομιλίες σχετικά με αυτή την ιδέα των συγκεντρώσεων 874 01:07:56,000 --> 01:08:01,000 και τη δημιουργία ενός drop-down μενού, 875 01:08:01,000 --> 01:08:06,000 το οποίο θα μπορεί να είναι ή να μην θέλουν να κάνουν, ανάλογα με το τι τελικά το έργο σας κάνει, 876 01:08:06,000 --> 01:08:13,000 που επιτρέπει στο χρήστη να επιλέξει από μια λίστα με όλες τις πιθανές συγκεντρώσεις 877 01:08:13,000 --> 01:08:15,000 μία συγκέντρωση τους. 878 01:08:15,000 --> 01:08:21,000 Τώρα, αυτό είναι το είδος του πόνου για να πληκτρολογήσετε αυτό έξω 879 01:08:21,000 --> 01:08:25,000 και πρέπει να τα κάνουμε όλα αυτά το χέρι, ειδικά όταν έχετε να βεβαιωθείτε 880 01:08:25,000 --> 01:08:28,000 ότι έχετε όλα τα στηρίγματα γωνία στο σωστό μέρος και όλα τα εισαγωγικά στο σωστό μέρος, 881 01:08:28,000 --> 01:08:34,000 Έτσι με την PHP, μπορείτε να το κάνετε αυτό με προγραμματισμό, και μπορείτε να το κάνετε αυτό πολύ γρήγορα. 882 01:08:34,000 --> 01:08:36,000 >> Ας δούμε πώς μπορείτε να το κάνετε αυτό. 883 01:08:36,000 --> 01:08:42,000 Εμείς πάμε για να ανοίξει ένα νέο αρχείο. 884 01:08:42,000 --> 01:08:46,000 Εμείς πάμε για να θέσει σε PHP ετικέτες μας. 885 01:08:46,000 --> 01:08:53,000 Εμείς πάμε για να το ονομάσουμε concentrations.php, 886 01:08:53,000 --> 01:08:58,000 και τώρα, όταν το κάνετε αυτό, το είδος του ένα καλό πράγμα για να σκεφτεί για 887 01:08:58,000 --> 01:09:02,000 όταν προσπαθείτε να συνδυάσετε και να ταιριάξετε PHP σας και HTML σας 888 01:09:02,000 --> 01:09:08,000 υπολογίζει, εντάξει, αυτό είναι το μέρος που θέλω να παράγουν προγραμματισμού; 889 01:09:08,000 --> 01:09:11,000 Ποιο είναι το μέρος που μπορώ να δημιουργήσει προγραμματισμού; 890 01:09:11,000 --> 01:09:17,000 Είναι αλήθεια ότι μπορείτε να κάνετε πάντα για την HTML σας 891 01:09:17,000 --> 01:09:19,000 μέσα από PHP μπλοκ. 892 01:09:19,000 --> 01:09:24,000 Μπορείτε να επαναλάβω όλα τα HTML ως συμβολοσειρές. 893 01:09:24,000 --> 01:09:30,000 Για παράδειγμα, αν θέλω να αρχίσουν να κάνουν τις ετικέτες επιλέξτε μέσα από PHP 894 01:09:30,000 --> 01:09:46,000 Μπορώ να πω ηχώ, ας πούμε επιλέξτε το όνομα = συγκέντρωση, 895 01:09:46,000 --> 01:09:49,000 και στη συνέχεια κάτω θα μπορούσα να έχω μια άλλη ετικέτα ηχούς 896 01:09:49,000 --> 01:09:57,000 ή ένα άλλο που ονομάζεται ηχώ κλείστε το επιλέξετε. 897 01:09:57,000 --> 01:10:00,000 Αυτός είναι ένας τρόπος για να το κάνουμε αυτό, γιατί ό, τι είναι κυριολεκτικά πρόκειται να κάνουμε 898 01:10:00,000 --> 01:10:09,000 είναι εκτυπώσετε αυτή τη σειρά όταν είναι τρέχει μέσω του διερμηνέα PHP, 899 01:10:09,000 --> 01:10:12,000 έτσι το αποτέλεσμα θα είναι HTML. 900 01:10:12,000 --> 01:10:18,000 Εάν αποθηκεύσετε αυτό το αρχείο ως έχει αυτή τη στιγμή 901 01:10:18,000 --> 01:10:24,000 και τρέχω php concentrations.php 902 01:10:24,000 --> 01:10:26,000 κοιτάξτε τι έχω. 903 01:10:26,000 --> 01:10:30,000 Πήρα αυτό το άνοιγμα κλείσιμο επιλέξτε ετικέτα. 904 01:10:30,000 --> 01:10:36,000 >> Αν ήμουν στη θέση να το κάνουμε αυτό και εγώ επρόκειτο να σώσει αυτό το αποτέλεσμα σε ένα αρχείο, 905 01:10:36,000 --> 01:10:45,000 ας πούμε, concentrations.html-αναμονή, μοιάζει με το l έχει περάσει στην άλλη πλευρά, 906 01:10:45,000 --> 01:11:02,000 τώρα αν θα ανοίξει εδώ concentrations.html βλέπετε έχω ένα έγκυρο αρχείο HTML. 907 01:11:02,000 --> 01:11:05,000 Είναι αυτό το είδος της παράξενο; 908 01:11:05,000 --> 01:11:09,000 Είμαστε χρησιμοποιώντας PHP για να δημιουργήσετε HTML, να δημιουργήσει έγκυρο HTML. 909 01:11:09,000 --> 01:11:13,000 Ο τρόπος που το κάνουμε εμείς είναι που έχει ακριβώς την εκτύπωση PHP 910 01:11:13,000 --> 01:11:16,000 η HTML που θέλουμε να εκτυπώσετε. 911 01:11:16,000 --> 01:11:20,000 Αυτό είναι κυριολεκτικά πώς PHP ιστοσελίδες εργάζονται. 912 01:11:20,000 --> 01:11:24,000 Όταν επισκέπτεστε μια ιστοσελίδα που σας στέλνει σε κάτι σαν 913 01:11:24,000 --> 01:11:30,000 κάτι, κάτι, κάτι dot com κάθετο index.php 914 01:11:30,000 --> 01:11:33,000 ο υπολογιστής είναι κυριολεκτικά πρόσκληση προς index.php, 915 01:11:33,000 --> 01:11:38,000 τρέχει μέσω του διερμηνέα PHP, σκουπίδια και ό, τι βγει 916 01:11:38,000 --> 01:11:49,000 αυτό είναι στέλνοντας πίσω στο πρόγραμμα περιήγησης και λέγοντας hey, πρόγραμμα περιήγησης, ερμηνεύουν αυτό ως HTML. 917 01:11:49,000 --> 01:11:54,000 Το ωραίο είναι ότι μπορεί να είναι ένας πόνος για να γράψει συνεχώς ηχώ, ηχώ, ηχώ, ηχώ 918 01:11:54,000 --> 01:11:59,000 και περικλείει τα πάντα σε εισαγωγικά σαν αυτό, οπότε αν θέλετε να γράψετε 919 01:11:59,000 --> 01:12:04,000 η HTML που πρόκειται να είναι στατική τον εαυτό σας μπορείτε να το κάνετε αυτό, όπως, 920 01:12:04,000 --> 01:12:16,000 έβαλε έξω, κλείστε το, 921 01:12:16,000 --> 01:12:21,000 και στη συνέχεια, εδώ το μόνο που τίθεται στο εσωτερικό των PHP tags αυτό που ξέρετε 922 01:12:21,000 --> 01:12:26,000 θέλετε να δημιουργήσετε μέσω προγραμματισμού, και σε αυτή την περίπτωση είναι οι ετικέτες επιλογή 923 01:12:26,000 --> 01:12:31,000 που είναι ένας πόνος για να δημιουργήσει. 924 01:12:31,000 --> 01:12:37,000 >> Για παράδειγμα, θα μπορούσε να δημιουργήσει χιλιάδες ετικέτες επιλογή 925 01:12:37,000 --> 01:12:48,000 κάνοντας κάτι τέτοιο, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 και λέγοντας ηχώ αξίας των δικαιωμάτων προαίρεσης = $ κραυγών, δεν μπορώ να το κάνω αυτό. 927 01:13:00,000 --> 01:13:03,000 Λοιπόν, ας δώσουμε ένα προσπαθήσουμε και να δούμε τι θα συμβεί. 928 01:13:03,000 --> 01:13:22,000 $ I και στη συνέχεια, λέγοντας $ i 01:13:27,000 Αντί να χρειάζεται να πληκτρολογήσετε από την ετικέτα επιλογή χίλιες διαφορετικές χρονικές στιγμές 930 01:13:27,000 --> 01:13:33,000 Είμαι με τη χρήση κώδικα PHP για να παράγει αυτόματα, μέσω προγραμματισμού. 931 01:13:33,000 --> 01:13:38,000 Είδος της μόδας. Ναι. 932 01:13:38,000 --> 01:13:41,000 Θυμάμαι αυτό που αναφέρεται είτε στην διάλεξη ή την περιδιάβαση, 933 01:13:41,000 --> 01:13:43,000 αλλά ποια είναι η διαφορά ανάμεσα στα εισαγωγικά, 934 01:13:43,000 --> 01:13:45,000 οι κανονικές τιμές και μόνο αυτά τα πράγματα; 935 01:13:45,000 --> 01:13:49,000 Αυτό είναι πραγματικά κάτι που έχω κάνει λάθος εδώ ότι ήμουν έτοιμος να σας δείξω. 936 01:13:49,000 --> 01:13:52,000 Τα μονά εισαγωγικά δεν επιτρέπουν ειδικούς χαρακτήρες, 937 01:13:52,000 --> 01:13:57,000 έτσι τα πάντα μέσα σε μια ενιαία σειρά που αναφέρονται ερμηνεύεται κυριολεκτικά. 938 01:13:57,000 --> 01:14:02,000 Αν είχα ένα \ n μέσα από μονά εισαγωγικά και εκτός από αυτό, για παράδειγμα, 939 01:14:02,000 --> 01:14:07,000 και τώρα πάω εδώ κάτω και να τρέξει- 940 01:14:07,000 --> 01:14:12,000 ουπς, όπου θα πάω; 941 01:14:12,000 --> 01:14:19,000 Ω, αυτό συμβαίνει γιατί ξέχασα το $. 942 01:14:19,000 --> 01:14:25,000 >> Τώρα, αν θα ανοίξει-στην πραγματικότητα, εδώ, θα απαλλαγούμε από το να πληκτρολογείτε σε ένα αρχείο. 943 01:14:25,000 --> 01:14:27,000 Θα διαβάσετε αυτό ακριβώς. 944 01:14:27,000 --> 01:14:34,000 Εδώ μπορείτε να δείτε ότι έχω αυτό το γράμμα \ n στη σειρά, σαν να μην ένα πραγματικό νέα γραμμή, 945 01:14:34,000 --> 01:14:38,000 και ομοίως, αντί της παρεμβολής πραγματικά την τιμή αυτής της μεταβλητής 946 01:14:38,000 --> 01:14:42,000 μου έδωσε το $ i ίδια, η οποία είναι το είδος του πόνου. 947 01:14:42,000 --> 01:14:46,000 Ο τρόπος γύρω από αυτό είναι να χρησιμοποιήσετε τα διπλά εισαγωγικά, 948 01:14:46,000 --> 01:14:52,000 και στη συνέχεια, όταν χρησιμοποιείτε διπλά εισαγωγικά ότι θα είναι πράγματι 949 01:14:52,000 --> 01:14:56,000 σωστά παρεμβάλει τις τιμές όλων αυτών των μεταβλητών εδώ 950 01:14:56,000 --> 01:14:59,000 και αυτό το αναγνωρίζουν επίσης \ n να είναι η νέα γραμμή είναι ότι 951 01:14:59,000 --> 01:15:02,000 και δεν \ n. 952 01:15:02,000 --> 01:15:07,000 Χρησιμοποιώντας τα μονά είναι ωραίο όταν έχετε 953 01:15:07,000 --> 01:15:10,000 χαρακτήρες που θα μπορούσαν να ερμηνευθούν ως ειδικοί χαρακτήρες, επειδή τότε δεν χρειάζεται να 954 01:15:10,000 --> 01:15:15,000 ξεφύγουν από τους συνεχώς. 955 01:15:15,000 --> 01:15:18,000 Τα πράγματα μπορεί να πάρει βρώμικο, και πολλές φορές τον τρόπο που το κάνει, 956 01:15:18,000 --> 01:15:24,000 ακριβώς για να διευκολύνει τα πράγματα, είναι ότι αν είμαι πρόκειται να έχει καμία 957 01:15:24,000 --> 01:15:31,000 HTML αρέσει στον κώδικα μου θα περιλαμβάνουν επεξεργασία μέσα σε μονά εισαγωγικά 958 01:15:31,000 --> 01:15:36,000 και στη συνέχεια να χρησιμοποιήσετε αυτόν τον τελεστή συνένωσης 959 01:15:36,000 --> 01:15:43,000 να ενώσετε τις μεταβλητές μέσα 960 01:15:43,000 --> 01:15:47,000 Αυτός είναι ένας άλλος τρόπος για να γίνει αυτό 961 01:15:47,000 --> 01:15:52,000 όπου έχουμε την τελεία που πρόκειται να συνδέσετε αυτό είναι ένα string 962 01:15:52,000 --> 01:15:56,000 με αυτό με αυτό με αυτό, 963 01:15:56,000 --> 01:15:59,000 και τώρα δεν έχω να ξεφύγουν από αυτά τα διπλά εισαγωγικά. 964 01:15:59,000 --> 01:16:02,000 Δεν έχω να χρησιμοποιούν αυτόν τον τύπο για να ξεφύγουν. 965 01:16:02,000 --> 01:16:08,000 Θα κυριολεκτικά να εκτυπωθεί ως διπλά εισαγωγικά και στη συνέχεια αυτόν τον τύπο εδώ. 966 01:16:08,000 --> 01:16:11,000 Αυτό είναι ένας άλλος τρόπος ανάμιξης πάντα μαζί. 967 01:16:11,000 --> 01:16:14,000 >> [Φοιτητικό] Επίσης, όταν επανέλαβε την gettype δεν υπήρχαν εισαγωγικά καθόλου. 968 01:16:14,000 --> 01:16:22,000 Σωστά, έτσι είναι η ηχώ είδος των ειδικών, υπό την έννοια ότι δεν χρειάζεται παρενθέσεις. 969 01:16:22,000 --> 01:16:29,000 Δεν χρειάζεται να έχετε τα εισαγωγικά απαραίτητα γύρω από μεταβλητές, 970 01:16:29,000 --> 01:16:37,000 σαν να είναι έγκυρο να πούμε echo $ i, και πρόκειται να ερμηνεύσει αυτό ως συμβολοσειρά. 971 01:16:37,000 --> 01:16:44,000 Είναι πρόκειται να κάνει το απόρριμμα, έτσι θα μπορούσαμε να το κάνουμε αυτό, και αυτό είναι πάρα πολύ έγκυρος, αλλά εμείς δεν το χρειαζόμαστε. 972 01:16:44,000 --> 01:16:48,000 Είναι προαιρετική. 973 01:16:48,000 --> 01:16:53,000 Στο σύνολο το πρόβλημα αυτής της εβδομάδας να κοιτάξει έξω για πολλά αυτού του είδους τα πράγματα 974 01:16:53,000 --> 01:16:58,000 Όπου και αν μίξη και το ταίριασμα με HTML PHP 975 01:16:58,000 --> 01:17:08,000 ακριβώς όπως αυτό, και τώρα αν μετακινηθείτε προς τα πίσω και το τρέχουμε 976 01:17:08,000 --> 01:17:13,000 μπορούμε να δούμε ότι έχουμε ένα σωρό αξίες επιλογή 977 01:17:13,000 --> 01:17:15,000 που μόλις πήρε να εκτυπωθούν. 978 01:17:15,000 --> 01:17:20,000 Όλοι έχουμε αυτό το HTML που παράγεται πήρε πολύ γρήγορα για μας. 979 01:17:20,000 --> 01:17:22,000 Θα το αφήσουμε ως άσκηση. 980 01:17:22,000 --> 01:17:24,000 Είναι πολύ παρόμοιο με την ανάγνωση αρχείων που κάναμε νωρίτερα. 981 01:17:24,000 --> 01:17:31,000 >> Υπάρχει μια concentrations.txt αρχείο που μπορεί να τραβήξει κάτω από το CDN, 982 01:17:31,000 --> 01:17:34,000 και μπορείτε να το ανοίξετε χρησιμοποιώντας το ίδιο τέχνασμα foreach ότι κάναμε νωρίτερα, 983 01:17:34,000 --> 01:17:39,000 foreach και απλά πρέπει να επαναλάβω μια επιλογή και συνδέστε 984 01:17:39,000 --> 01:17:44,000 οι κατάλληλες τιμές, τα κατάλληλα πλήκτρα και δείκτες, 985 01:17:44,000 --> 01:17:49,000 και στη συνέχεια μπορείτε να πάρετε μια drop down που κυριολεκτικά δημιουργεί 986 01:17:49,000 --> 01:17:54,000 προγραμματισμού για εσάς όλες τις διαφορετικές συγκεντρώσεις στο Χάρβαρντ. 987 01:17:54,000 --> 01:17:57,000 Ένα εύχρηστο πράγμα που πρέπει να έχουν. 988 01:17:57,000 --> 01:18:02,000 Υπάρχουν πολλά πράγματα διαμόρφωσης για την ανάθεση αυτή. 989 01:18:02,000 --> 01:18:07,000 Αν δεν το έχετε κάνει ήδη πάρει την επόμενη μισή ώρα, ώρα, 990 01:18:07,000 --> 01:18:10,000 κάποια στιγμή σίγουρα απόψε στα σίγουρα, 991 01:18:10,000 --> 01:18:14,000 περπατήσετε μέσα από το σύνολο spec πρόβλημα, 992 01:18:14,000 --> 01:18:20,000 δείτε τι συμβαίνει με τη σύσταση της vhosts, η τοπική υποδοχής, όλα αυτά τα πράγματα. 993 01:18:20,000 --> 01:18:24,000 Ένα πράγμα που πρέπει να επισημάνω αυτή τη στιγμή είναι ότι 994 01:18:24,000 --> 01:18:30,000 στα περισσότερα σύνολα πρόβλημα που έχουμε να υπεισέλθω σε φάκελο Dropbox σας 995 01:18:30,000 --> 01:18:34,000 και τη λήψη τότε το σύνολο πρόβλημα zip αρχείο και αποσυμπίεση του. 996 01:18:34,000 --> 01:18:36,000 Για αυτό το σύνολο το πρόβλημα δεν θέλετε να. 997 01:18:36,000 --> 01:18:40,000 Θέλετε να πάτε σε αυτόν τον κατάλογο vhosts. 998 01:18:40,000 --> 01:18:45,000 Θα ήθελα να υπεισέλθω σε vhosts και να πάει στο τοπικό κατάλογο υποδοχής στο πλαίσιο αυτό, 999 01:18:45,000 --> 01:18:50,000 και αυτό είναι που θα θέλετε να γκρεμίσει το αρχείο zip, 1000 01:18:50,000 --> 01:18:55,000 αποσυμπιέστε το και ετοιμαστείτε να πάει. 1001 01:18:55,000 --> 01:18:57,000 Θα πρέπει να ακολουθήσετε τα βήματα προσεκτικά. 1002 01:18:57,000 --> 01:19:02,000 >> Αν έχετε οποιεσδήποτε απορίες, στείλτε e-mail, το post στο Συζητήστε, έρχονται σε ώρες γραφείου. 1003 01:19:02,000 --> 01:19:08,000 Ευχαριστώ παιδιά. Την επόμενη εβδομάδα θα πάμε να έχουν μια σύνοδο για την ανασκόπηση κουίζ. 1004 01:19:08,000 --> 01:19:12,000 Απολαύστε το τελευταίο σετ το πρόβλημά σας. Ελπίζω ότι όλα πάνε πολύ καλά. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]