[音楽再生] SPEAKER 1:これはCS50であり、 これは、週7の終わりです。 今日は、おそらくどこです 本当にあなたの言語を教えます。 私たちは、過去2で導入 週間HTMLとCSS、どちらの 言語をプログラミングしています。 そして実際、私たちはやったにもかかわらず、ではありません ほぼすべてのタグを見ます そのHTMLは付属しており、ほぼすべての CSSが付属していますプロパティの、 それは、HTMLとCSSのそれのようなものです。 私達はちょうど一般的によ あなたと仮定して開始 一般的な考え方を理解します タグ、および属性の、 そして、ページが送信されています クライアントからサーバーへ。 今日私たちが見に開始するため、 別のプログラミング言語、PHP。 我々は、この超高速をやろうとしています。 私たちは、PHP自体を教えるつもりはありません 私たちはあなたを教えることを熱望しなかったのと同じよう C、それ自体ではなく、プログラミング。 そして実際、のいずれか このコースの目標 あなたのCを教えることではなく、 またはHTML、またはCSS、またはPHP、 または他の任意の数 話題の単語や頭字語、 しかし、コンピュータサイエンスではなく どのように根本的にプログラムします。 そして実際、今日は取るために開始します すべてのオフこれらの補助輪 飛んによるさらなる 次のように言語は、PHPと呼ばれます。 ここでは、この言語がどのように見えるかです。 それを必要としないことが判明 記述されたプログラムのmain関数 PHPと呼ばれる言語です。 だから、もう少し単純に聞こえます Cよりも、これで我々は慣れています。 それはどうかということが判明しました 変数を宣言したいです、 あなたがCにほとんど同じことを行うしかし、 一つの違いは、ここで明確にあります 私は文字列を宣言するとき、 または多分2つの違い。 何が違って見えますか? 聴衆:ドル記号。 SPEAKER 1:はい、ドルがあります 我々は前に見たことがない記号、。 そして、何が欠けていますか? うん? 聴衆:[聞こえません] SPEAKER 1:うん、何のデータ型がありません。 だから、PHPは私たちであることが判明 緩やかに型付けされた言語を呼び出します Cは強く型付けされています。 緩くだけであることを意味型付け 異なるデータ型があり、 文字列、int型、および浮動小数点数があります。 しかし、コンピュータの数字ことを。 あなた人間のプログラマ それを把握する必要はありません。 あなたがしなければならないので、すべての 変数を宣言することです ドル記号、あなたの名前 変数、その後、例えば、 引用引用終わり、こんにちは世界。 まあ、これは何ですか 条件は、PHPのように見えます。 任意の違い? いいえ。 だから、これらは同一であるがわかります。 そして、あなたは、より少ないかもしれません 枝以上のブランチ、 しかし、構文ターン まったく同じアウト。 ブール式缶 一緒に注文すること。 ブール式 ANDで結合することができます。 あなたはまだスイッチを持っています。 あなたが使用していない場合でも、 これら、これらは、Cには存在しません 彼らは、機能しています PHPの同等。 そして、実際には、PHPで彼らがしています もう少し強力。 Cでは、あなたは、特定の比較することができます int型や文字などのデータ型、 PHPであなたが実際に比較することができ、一方、 ことなく、完全なひな鳥を育てるの文字列 ポインタなどを心配します。 だからここのforループです。 これはただの擬似コードであります コー​​ド、もし必要になります。 しかし、構造的に、それは、Cと同じです ここでは、whileループ、擬似コードです C.と同じtherefore-- 同一のloop--ながらここで行うのです。 それでちょっとあります ここで、このパターンとなります 他のいくつかの構文上があります 特徴は、我々が実際に参照するつもりです。 実際には、ここでいいです これにより、PHPでの方法、 あなたが反復する場合 アレイと、あなたの上に 介してジャンプする必要はありません 持っていることの精神的、統語フープ 私は少なく、0に等しいint型 nよりも、私はプラスplus--します 迷惑な構文だけたくさんあり​​ます。 あなたは少しより多くを語ることができます 流動的に各番号の この場合の数、場所など ドル記号番号は、私が仮定しています、 数字と呼ばれる配列のようなものです。 そして私は、数を想定しています 単数、変数になるだろう。 そして、PHPは、私が反復として私のために何を行います このループ上で、それぞれの繰り返しであり、 それは、変数の数を更新するだろう 数字、複数のi番目の要素です。 だから、それはちょうど私のためにすべてのことを処理します。 無角括弧なし ドル記号、無セミコロン。 それはちょうど少し簡単です。 さて、あなたがしたい場合 配列は、それが判明あなた とかなり類似した何かを行うことができます C.構文は少し異なります。 しかし、ここでアレイは呼ばれています ドルは数字に署名しました。 そして、私はPHPで、使用、正方形 ブラケットは、それが判明しました。 そして、私たちは再び、これらを参照するつもりです JavaScript--ではまだ別の言語。 私はちょうど角括弧表記を使用 カンマ区切りのリストを持っています この場合の整数の。 しかし、それは私に配列を与えます。 しかし、さらに強力なPHPで、 我々はまた、一般的に何しています 連想配列と呼ばれます。 そして、言語の多く 同様にこれらを持っています。 Cの配列についての事 インデックスということです 配列、あなたの事のために 角括弧で使用している経由 あなたが要素にアクセス、何をする必要がありますか? 聴衆:[聞こえません] SPEAKER 1:彼らは数字でなければなりませんか 具体的にゼロから最大の整数、。 まあ、PHPで、そして、それはターン うち、他の言語で、 あなたが持って開始することができます 数値ではないインデックス。 しかし、彼らは実際に言葉ですか フレーズではなく、そのように どこに何かを覚えてみてください であり、あるいは、変数iに格納され、 あなたが実際に単語を使用し、言うことができます あなたはこのような言葉を言うことができthat--。 だから、ドル記号の引用です ここでは変数の名前。 これはややファンキーな構文です それは、二つのキー値を関連付けるです この変数のペア。 具体的には、これは私を与えています 長さ2の配列です。 しかし、インデックスは0と1ではありません。 インデックスは、引用引用終わりです シンボルと引用終わり価格を引用。 そして、それらのインデックスの値は、 それぞれ、FacebookのためのFBです 私は最後の$ 79.53、 このの価格をチェックします。 どういう意味ですか? まあ、それはあることを意味 代わりに、コードの記述 私は何かをするために使用される場合は、この、のような ドルsign--というか、C言語のように 私もドル記号を持っていないでしょう。 私は何かをするだろう その後、引用符など 私は私がいくつかを得るためにブラケットをするだろう 任意の数値値のインデックスを作成しました。 あなたならば、PHPで今日から いくつかの値を取得したいです、 私たちは、ソートの多くを持っています セマンティック表現。 我々はできるというのがちょうど空想方法 ちょうど彼らが何であるかのものを呼び出します。 そして、あなたが取得したい場合 何かのシンボルで、 今、あなたは文字通り行います 引用終わりシンボルを引用 角カッコの中の 代わりに、単なる番号の。 だから、素敵な便利です。 そして、それは今のところのようなものです。 の束があります PHPの他の機能。 そして実際、PHPは付属しています ことわざの台所の流し。 何十、何百もの機能が付属して C.に付属のよりPHP--非常に多く そして、それはすることを意図していないです 圧倒むしろ助けます あなたは私たちがなしていることを実感します 長いコードを記述する必要があります それは概念的には、ここでの並べ替えのダウンです。 今、私たちは利用して起動することができます はるかに高度な機能 PHPなどの言語を持っています。 だから我々は心配する必要はありません メモリ内の周りのものを移動します。 私たちは、malloc関数を心配する必要はありません これらの下位レベルのすべて、 あなたが格闘します強力な詳細 pset5、に苦労されていない場合、 しかし、あなたは始めることができます 当然すぐに取ります。 実際には、のは、スーパーを書いてみましょう PHPで簡単なプログラム、次のように。 私はCS50に頭を行くつもりです ここでは、IDE、と私はするつもりです それは非常に単純に、新しいファイルを作成することです こんにちはドットPHPと呼ばれるように起こっています。 だからではなく、ドットcの、それはです ドットPHPと呼ばれることになるだろう。 そして、このファイルで、 私は、入力を開始することができます。 しかし、それはことが判明 私が知っている必要があります一つのこと 一般的には任意のPHPファイルには、必要があることです いくつかの特別な構文を使用して開始します。 HTMLに精神で似ていますが、再び、 PHPはプログラミング言語ではありません マークアップ言語。 だから、すべてのファイルが、それは一種のです 愚かな私は認めるよ探し。 オープンブラケット、疑問符、PHP。 そして、それはちょうどです 言うの言語の方法、 ちょっと、ここでコンピュータは、いくつかのコードを付属してい PHPと呼ばれる言語で書かれました。 そして、あなたのファイルの最後に、 あなたは反対の一種のようなものを行います。 あなたはあなただけ、再びPHPを書いていません 疑問符、アングルブラケットを行います。 そして、あなたの中に入れるもの これら二つのタグの、いわば、 であるか、または、PHPのコードである必要があります。 それでは、超シンプルな何かをしてみましょう。 私が先に行くと、印刷をするつもりです デフ、こんにちは世界、バックスラッシュnは、保存してください。 そして今、私のプロンプトで、私はするつもりです 、いいえ、私はするつもりですhello--作るのですか、 ドットはスラッシュこんにちは。 いいえ、ドットスラッシュ、HM。 だから、何かが違います。 そして実際、これは重要な違いです PHPとCのCのような言語間 いわゆるコンパイル言語でした。 Cをコンパイルするためにそれは何を意味するのですか? 含意は何でしたか? うん。 聴衆:マシンコードにそれを書きました それは、コンピュータによって実行される可能性があります。 SPEAKER 1:その通り。 我々は最初に変換する必要があります マシンコード、0と1は、いわゆる、 それが実際に実行されます前に、 、コンピュータによって理解。 内部インテルが。 コンピュータの内部のCPUによる。 PHPは、対照的に、と呼ばれるものです インタプリタ言語、どの あなたはそれをコンパイルしないことを意味します 0と1に、マシンコード、 あなたの代わりにソースコードのままにしておきます。 そして、あなたは代わりに入力として渡し プログラム、インタプリタへ 他の誰かが書きました 年前にそれを理解しています 行ずつ、文字の文字。 換言すれば、 人間はそこに書いています なりますプログラム ラインによってあなたのコード行では、 そして何を把握 コンピュータが行う必要があり、 それを変換せず 直接0と1に。 だから、ループのために見れば、 このいわゆる通訳 私は、すべての権利、のようになりべきで起こっています 何度も何度も何度も何かをします。 私は何をすべきか? 私は次の行を見てみましょう。 私は次の行を見てみましょう。 そして、それは本当に行ずつ解釈します。 だから、それを実行するために、私は、makeを使用しないでください。 私は、この場合には、ドットスラッシュを使用しないでください。 私の代わりにあるPHPを、行います プログラム、別名の名前 インタプリタは、それはです CS50 IDEでプリインストールされ、 そして今、私は渡す必要があります コマンドライン引数、どの 非常に単純名です 私が解釈するファイル。 以上さりげなく、私が実行したいこと。 私はEnterキーを押した場合に、そこに我々はそれを持っています。 こんにちは世界。 今では、私ことが判明 中古印刷デフ故意 CからPHPに私たちを埋めるために。 ほとんどのPHPプログラマ、あなたが表示されますように、 でも印刷デフを使用して気にしないでください。 彼らはただ、呼び出された関数を使用します Cは持っていなかったプリント、。 だから、私は今それを再実行した場合、それは実際に 機能的に同じように動作します。 私は、パーセントSを使用することはできません などとパーセントiと、 他の方法があります それを行うのPHPインチ しかし、これは唯一にあります 、構文的にそれを言います アップいくつかの奇妙なもの以外 トップ、およびいくつかの奇妙な文字ダウン 下部に、概念は今の この他の言語でのプログラミング 全く同じことを行っています。 実際には、のは、一つの他の例を実行してみましょう。 だから私は先に行くつもりです このファイルを閉じます。 私はその別のものを作成してみましょう 私は条件1ドットPHPを呼ぶことにします。 だから、何もゼロませんが、私が何をしたか理由 私は数週間前に振り返りました、 我々はと呼ばれるファイルを持っていました 条件1ドットC.そして、何 私は自分でそれを転換したんでした 頭、ここで紙の上で、 そして、すぐにコース上の ウェブサイト、PHPに行ずつ。 だから、Cバージョンでは、我々は何かをしました 文字列のようにsが文字列を取得取得します。 だから、それは少し違います PHPでそれを行うには。 その代わりに、私は行きますよ 行う、というか、私がします 行っている可能性がありますint型nは、取得取得します INT、前述の例です。 だから、その代わりに、私は、nを行うつもりです 行を読んでます、私は整数をしたいと思い、 お願いします。 だから、これはちょうど私のプロンプトです。 そしてそれが判明し、 私はこのことを知っているだろう 関数を読んだり、見たから 前、PHPの関数の行を読み込みます プロンプトで引数を取ります 人間、そして生活の中でその目的のために 行のテキストを読むことです 彼または彼女のタイプのものです。 そして、それはそれを記憶します 変数nにテキスト。 そして今、私が何かをしたいかもしれません 私のような一週間で、週間前に行ったように クラスの一つ。 nがより大きい場合 ゼロは、その後、私は行きますよ 私達はちょうど見、その構文を借ります、 印刷デフ、あなたは、正の数を選びました バックスラッシュnは。 そうでなければ、nが等しい場合私は、ゼロに等しいです 先に行くと言うつもり、印刷DEF、 あなたはゼロバックスラッシュnを選びました。 そうでなければ、ここでの場合はすべき もちろんこと、印刷DEF、 あなたが負の数を選びました。 そして、我々は確かに実装することができます この事のロジック 異なるの束で 方法が、ここでのポイント それは、構文的です ほとんど何も新しいものです。 それはちょうどドル記号だと 新機能および読み取りライン。 しかし、基本的に、何が新しいのです 今私はこれを解釈していますです。 私は、入力としてそれを渡しています 別のプログラムに。 だから私はこれを実行したい場合は、もし 私はミスをしませんでした、 私はの、PHPを実行するつもりです 1ドットPHPは、入力した条件、 私は、数50に入力するつもりです そして今度は、それが動作するために仮定しましょう​​。 ロジックがあるため 週1と同じもの。 すべての権利、それはかなりですので、 がっかりですよね? 私たちはいずれかにこれを行うことができます 言語の数。 さんが道より強力な何かをしてみましょう。 5つを設定し、問題を終了してみましょう。 だから私は先に行くとこれを行うつもりです。 私は、ファイルを作成するつもりです 辞書ドットPHPと呼ばれます、 あなたがかもしれないように傾斜 ノートの多くを下にスクランブルします、 ノートは唯一のに役立ちます あなたはあなたが許可されている場合 問題は、PHPの5つを設定して実装します。 しかし、我々はどのように迅速に、今表示されます その同じ問題セットを実装することができます。 だから辞書ドットPHPで、私はつもりです すでに存在することを前提とします 世界でファイルがスペルチェックと呼ば​​れます。 そして実際、私は、事前にこれをしませんでした 我々は、この行を歩くはありません 線で、しかし、あなたはしている場合 好奇心旺盛以降と本当にしたいです 周りにあなたの心をラップします CとPHPの間の差異、 文字通り、このファイルを比較し、 今日のソースコードからスペルチェック、 我々は後に投稿しますことを 今日、p個のセットに対して 私たちはあなたを与える5スペルチェックドットC、 そしてそれはほとんど行同じ行です。 いくつかのより多くのドル記号があります。 カップルの機能があります 少し異なります。 しかし、それは素晴らしい方法です どのように見ての一種の あなたは別の言語を翻訳します。 そして、それはラインのほとんど同じラインです。 しかし、私はそのことを前提とするつもりです 存在し、私はここにするつもりです 爆破しようとしているあなた 再実装することにより、気に 問題の全体は、5つの方法を設定します あなたがこれまで行ってきたよりも速く。 だから例えば、私が最初に行きますよ サイズと呼ばれるグローバル変数を宣言し、 そしてゼロにそれが等しくなるように設定。 今では多くの貯蓄ではありません。 オッズは、あなたが実装されています ほとんど同じサイズ、 またはヒントヒント、意志今夜か明日、 ちょうどと呼ばれるグローバル変数を使用して サイズ、ゼロに等しいことを設定します。 それは特にありません 素晴らしいスポイラー。 だから、あなたのデータ構造は何でした 選択肢に潜っているあなたの人々 そして、仕様を読んで、どのようなデータ構造 あなたのほとんどを持って使用していますか? ハッシュテーブルまたは多分、してみてください それらのいくつかの亜種。 そう少なくともハッシュテーブルを実装し、 コー​​ドの行の多くの一種です、 右? そして、それらのすべてがない場合がございます 週のこの時点での機能、 それは大丈夫です。 PHPで、場合ので、私 行われ、ハッシュテーブルをしたいです。 右? 私がしましたので、変数 ただ明らかにされていると宣言 ドル記号表と呼ばれます、 前導入あたり。 しかし、私は本当にただで、したいです 一日の終わりに、配列。 しかし、数値的に索引付けされていません 配列、それは週2のようなので 我々は、配列について語ったもの。 私は、ハッシュテーブルをしたいです。 しかし、ハッシュテーブルは実際にあります 言うだけの具体的な方法は、 あなたが連想配列にしたいです。 あなたのことができるようにしたいです 値に関連付けるキーを押します。 値を持つキー。 本当に、辞書とは何ですか? まあそれは、キーの全体の束です。 リンゴ、梨、バナナのような言葉、 これらの英語の単語のすべて 私たちはあなたを手ということ。 そして、あなたが効果的にしている値は、 あなたの辞書に挿入 真、または非存在下、falseのいずれかです。 つまり、あなたが挿入されています キーと値のペアの全体の束、 リンゴ、真、梨、真の、バナナ、真。 だから、あなたが取得したり、見たとき あなたのハッシュテーブル内のデータアップ あなたのチェック機能で、あなたがしています どちらかの答えを取り戻します、 はい、私は複雑でそれを見つけました 、テーブルをハッシュ、または全くない、それだけではありません あなたはfalseを返します。 だから、それを行うために、私は必要なすべてのデータがあります 私のような構造は、前に提案しました。 私はできるようにする必要があります 単語を関連付けます 以下のように、引用終わり引用、シンボル、 真の値のような、と。 だから私のハッシュテーブルがあります。 それでは、実際にそれを使ってみましょう。 だから、いくつかの機能があります 私が実装する必要があります。 私が先に行くと、噛むつもりです サイズと呼ば機能をオフにします。 これは引数を取りません。 私は気にする必要はありません 単語、PHPのボイド。 私は単にサイズを返すつもりです。 また余談として、PHPは持っています このminorly迷惑なディテール、 何かがグローバルだ場合、あなたがする必要はあり場所 あなたが使用しているれている関数を教えて それは、ちょっと、これはグローバル変数です。 だから、マイナー愚かさが、あなた それにもかかわらず、それをしなければなりません。 それでは、負荷はどうですか? 私は実装するつもりです ロードと呼ばれる関数 それは、辞書の名前を取り込み、 ただ問題のように5を設定します。 そして、私が進む前に、 私は持っていないことに気づきます 全く同じものを入力して。 何についてPHPで明らかに違います どのように対C関数を宣言? うん。 聴衆:[聞こえません] SPEAKER 1:なし戻り値の型。 そして実際、そのような場合は、PHPの それがルーズだ限りにおいて、 その意味でも少しずさんです。 あなたはプログラマとして指定されていません この関数は返すもの。 あなたが実際に見ているだろう コー​​ドであることを把握します。 またはコメントを読みます またはマニュアル。 のプラスとマイナスがそう 意思決定のこれらの種類。 しかし、私が言っているん キーワード、機能。 そして、我々が学ぶとき 数週間のJavaScript 私たちは同じことを確認するつもりです 再び、それは同じ考えです。 関数の名前、その引数 現在または引数またはその欠如、および ここでの実装です。 だから、僕はいくつかのコーナーをカットするつもりです ちょっと劇的なことができます。 しかし、私は先に行くと、これを言うつもりです。 これは私がロードすることができますどのように 配列にファイル。 ファイルと呼ばれるPHPの関数があります。 あなたはそれのファイル名手渡します。 それは内部の、配列をあなたに戻って手 そのうちのファイルからすべての行です。 0個、1個から、最大の nはマイナス1ラインに。 そう、それですか? 何Fのリードはありません。 全くのF GET sはありません。 何パーセントsはありません。 何頭痛はありません。 何FEOFはありません。 その原料のすべてがで あなたは、おそらくレスリングしてきました pは4と5を設定して、離れて行きます。 だから私はちょうどにこれらの行を読みます ファイルは、その後、あなたは何を知っていますか? 私はそれらの言葉を反復処理したい場合は、 私はラインとして、各ラインのために、行うことができます。 これは賢いのようなものだったことを覚えておいてください 配列の繰り返し処理の方法、指標 インデックスであり、各反復呼び出しに 現在の行、ドル記号ライン。 そして右ここで私は行くつもりだし、 テーブル、ブラケット、ラインは、真なると言います。 つまり、これはどのように PHPで私のハッシュテーブルに挿入します。 私は、ドル記号表を言います だった私の連想配列です アップ上記のコードの行ごとの空。 私、それへのインデックス ない、番号を使用して、 しかし、文字通り使用して 私が気にキーワード。 多分それはリンゴやナシです またはバナナまたは何、 しかし、具体的に私はインデックスを作成してい その中に私が先に提案したいです。 私は自分の名前を取ります 連想配列、そして私 で引用引用終わりを使用 文字列を角かっこ、 代わりに、実際の数の。 そしてそうそれはそれです。 ロード機能が実行されます。 そのループが繰り返されると、私が置かれています ハッシュテーブルにすべてのもの。 今、小さな免責事項あり カップルの事は私が修正する必要があります。 そして、バージョンは、私はオンライン投稿します ニュアンスのすべてを持つことになり、 それは主にちょうどいくつかのことになるだろう エラーチェックといくつかのマイナーな改良。 しかし、それは確かにそれの要点です。 私は今実装する場合 呼び出された関数 期待する、チェック 引数として単語、 どのように私はそれをやって行くのでしょうか? まあ、私は単純にあれば、言うつもりです 私のテーブルの内側に、位置ワードで、 もし設定されています。 だから、is--場合 実際に、あなたは何を知っていますか? 私はそれをするつもりです 擬似コードのビット。 しかし、考え方は同じです。 それが本当等しい場合、trueを返します。 大丈夫。 あなたは親切の場所を確認することができますElse-- これはfalseを返すようにgoing--されます。 完了。 チェックが行われます。 かなりいいですよね? そして、これは本当にで何を得ていますか? そして、これは、あまりにも、私はいくつかのコーナーをカット。 オンライン版を見てください わずかなニュアンスのすべてについて。 しかし、それはそれの要点です。 あなたの内のインデックス 連想配列、別名 値があるかどうかハッシュテーブルには、参照してください。 そこに、これをtrueに設定すると、そうであれば、 trueを返します。 だから我々は絞り込まました 複雑のすべて。 だから、心のようなものが吹いて、右か? 私はアンロードして、それを終えて気にしないだろう、 でfact--のでああ、あなたは何を知っていますか? うん、のは、アンロードとそれを終了させ。 ハッシュテーブルにアンロードになります。 機能アンロードのように、戻ります。 [OK]をので、それはアンロードです。 何もないので、 右、アンロードするには? 何malloc関数はありません。 私は明示的に要求していません 何のためのオペレーティングシステム。 私は、変数を使用して開始します。 そして、これはあまりにもの現れであります より高いレベルの言語の特徴。 だからもう一度、この用語の最も 私たちはここでダウンして対処してきました C.超低レベル​​。 あなたは、コンピュータのメモリを確認することができます。 あなたはあなたに何かを触れることができます コンピュータのRAMにしたいです、 良くも悪くもため。 ここまで、我々はつもりです その力を放棄します。 しかし、私の神は、どのように見えます はるかに少ないコードで私が書きました。 実際には、私は話していなかった場合 私のタイピングを介して話して、 我々は、で行われていたであろう 5分前に、この例。 そこで支払われる価格は何ですか? さてそれでは、見てみましょう。 のは、見てみましょう。 私が先に行くと、CS50を実行するつもりです。 私が最初に行ってみよう 今日の例はどこに 私は以前のようにテキストのディレクトリがあります。 私は、そのソリューションを実行するつもりです それが呼ばれる5を設定し、問題が付属しています CS50のアカウントにあるスペルチェック、。 そして、私は何かにそれを実行するつもりです 欽定訳聖書のような大きな、 ちょうどそのように、私たちは本当に置きます テストにスタッフソリューションを提供しています。 今、時にはインターネットです 少し速く、少し遅く、 スクロールするにはしばらく時間がかかる場合があります。 しかし、それは、0.56秒の合計を取りました ジェームズ王をスペルチェックします 聖書は、スタッフの解決を使用して。 だから、かなり良いです。 あなたは、はるかに遅いかもしれないが、 それは完全に罰金です。 しかし、それはここでは正しいです。 だから、スタッフのソリューションです。 私はに行くとPHPのバージョンをクリーンアップします。 そして、私は少しをするつもりです ベーキングショーの事のように。 私たちは、私が書いたコードを取るつもりです 以前、それは完全に正しいです。 私が書いたコードが行っていないため、 今完全に正しいように。 しかし、私はPHPのバージョンを実行した場合、 何今日はあきらめなければならないのですか? に私に5分かかりました Pセット5を実装し、私が主張しています。 私はどのような価格を支払っていますか? うん。 聴衆:スピード。 SPEAKER 1:速度。 どういう意味ですか? 観客は:それは長い時間がかかるだろう。 SPEAKER 1:すべての権利。 どれどれ。 それは長い時間がかかるだろう、 書き込むには、それを実行しません。 うん。 それでは、これを試してみましょう。 だからここに私が先に行くと、何をするつもりです スペルチェックのPHP、およびファイルのため、 スペルチェックと呼ば​​れます。 だから私は実行していません 辞書、リコール、 私はスペルチェックと呼ば​​れるプログラムを実行していますよ。 私は同じに合格するつもりです ファイル、ジェームズ王五。 それはによって飛んでいます。 これはちょうど、インターネットの速度とすることができます そのためにあまりにも多くを読んでいません。 しかし、それは確かに長く感じるん。 1.26秒。 今ではまだかなりです いまいましい高速、右? また、のように感じた唯一の理由 以上の3つ、または4つ、または5のような 秒、それが理由だけです インターネットが遅いされていました。 費やした計算時間は1.26でした 秒、私は0.56と思い対。 遅いの二倍よりもので、より多くの。 今ではまだかなりくそです 速いが、それは現れです 確かに、その正確な価格。 我々は解釈しているため、 ラインによってコード行で、 そのプログラムPHPが読んでいる私の 左から右へ下へのコードの上部、 それはより多くの思考を行う必要があります。 これは、一種の変換する必要があります それ自体の内部 対応する機械へ いわばその場でコード、 でも力学かかわらず、 少し異なっています。 代わりにちょうどに供給する インテルCPU生の0と1 それはネイティブに理解しています。 だから絶対に、ダウン手、 我々は価格を支払っています。 そしてコードは言語で書かれました PHPのように遅くなる傾向にあります。 しかし、私の神。 だから今私は自分のスペルチェックをするとき ファイル、私は余分な0.7過ごします またはそのように20時間対秒が実装します より高速なスペルチェッカー、右? これはトレードオフのようなものです。 そして、あなたは、単にPを開始している場合 5を設定し、20時間ではないかもしれません。 それよりもはるかに少ない可能性があります。 しかし、それは本当のため、トレードオフです。 そして、あなたは本当に大きい上でコードを実行している場合 データセット、あるいは古いハードウェア上で、 差異のそれらの種類 確かにまで追加することができます。 これまでのご質問? うん。 聴衆:[聞こえません] SPEAKER 1:申し訳ありませんが、することができます あなたはそれをもう一度言いますか? 聴衆:[聞こえません] SPEAKER 1:あなたは時間を与えています。 まあ、そうええ。 あなたがして時間を節約しています それをコンパイルする必要がありません、 それはあなたが求めているものだ場合。 そして実際、CS50で、 プログラムのほとんど、 彼らはしばらく時間がかかる可能性があっても、 書くために、彼らは比較的短いです。 数十、コードの数百行、 そのため、彼らはかなり迅速にコンパイルします。 しかし、あなたが起動したとき 大きなプログラムを書いて、 以下のようなあなたは、マイクロソフトだか、なら Googleと書き込み本当に大きなプログラム CまたはC ++で、または同様にコンパイル 言語は、多くの秒を取ることができます、 あるいは分以上に 数百万行のコードをコンパイルします。 そしてそこに、あまりにも、その 違いは、まで追加する予定です。 そして実際に、私たちはかつて 移行今日、同じ日 今日、Webプログラミングへ PHPを使用して、あなたがしています ちょうどそんなにそれを見つけるつもり コー​​ドを記述するより楽しいです あなたはこれらの愚かを行う必要がない場合 端末への変更のような手順 ウィンドウ、タイプのメイクこんにちは、再 それを実行し、ウィンドウをリロードします。 愚かなだけで非常に多くの 機械的な手順その ちょうど行うための方法で取得 面白い、楽しい作業。 そして実際、我々はPHPでそれを捨てます。 そして、我々は対話することができます より迅速にそれで。 うん。 聴衆:[聞こえません] SPEAKER 1:確かに。 私は何を明確にすることができます 解釈されることを意味しますか? あなたが言語をコンパイルすると Cのように、それがダウン 我々はマシンに言っ​​たように コー​​ド、0と1。 そして、Intelは数年前に決めたこと 0と1の特定のパターン さらに、または減算を表し、 または印刷、または他の基本的な操作。 インタプリタ言語の世界では PHP、またはJavaScript、またはPythonのような、 やRuby、あるいは房の 他の人は、代わりに誰か 書いています この場合interpreter--、 それはまた同一の、PHPと呼ばれています 基本的にlanguage--の名前 その中に反復していることは大きなループを持っています コー​​ドの行のすべての上 私は、入力として、それを養うこと、のようなハロー ドット、PHP、または辞書ドットPHP。 そして、あなたは彼らの大きいと考えることができます 条件の多くを持つようにループ。 場合そして、それらの条件は、言います 人間は、キーワードを書きました、 彼または彼女をやって起動 コー​​ド、何度も何度も。 あるいは、人間が持っている場合 コー​​ドの行を書いて、 もし、自分だけを実行します 条件付きで次の行。 だから、解釈のように本当にです それ人間の感覚で、ライン 線で、それはちょうど時間がかかります。 これは、オーバーヘッドがかかります。 そしてそうそれはprice--です 良いquestion--我々が支払います。 それでは、別のデモをやらせます それは少しより劇的です。 これで球場は、私が言うと思います、があります 恐ろしく失敗の90%の確率、 しかし、あなたは驚かれることでしょう 10%の確率を有します。 だから、毎年、私たちはしてみてください これを行うには、それによって我々 通過するプログラムを書いてみます 問題は、あなたがきているためにゼロを設定 お使いの携帯電話番号とAを提出 他の人口統計情報の多くは、 プログラムで、我々 あなたのテキストメッセージを送信。 そして、すべての人の電話 ビープ音や振動を開始し、 ので、それは、ただ驚くべきことです よく、コンピュータは何ができるかを見てください。 これはほとんど正常に動作します それは、大部分は、と思われます 私は通常、ブラックリストに載ってますので、 Gmailや他のいくつかのサービスが ためactuallyにこの規模でのやろうとしています。 しかし、面白いことに、私たち以来、あまりにもあります 今日ここに誰もが持っていません、 楽しい事実前回たち 2年前にこれを試してみました、 私はプログラムを書いたと思います それは、ループ反復に座っていました クラス内のすべての学生の上、 それらの各テキストメッセージ、 そしてそれは次のように述べて、 なぜあなたは、講義ではないのですか? 愛、CS50ボット。 あなたはどのように多くの申し訳なさそうな見当がつかない 痛みを伴う電子メールの並べ替え 私はからの応答で受信しました ここではありませんでしたNマイナス100人 その日。 とにも笑える、より恥ずかしいですstory-- あなたが知っている、のがそれを出してみましょう。 それは数年前にビデオで既にです。 だから、すぐに私を見ることができます これにより、ループのために書きます その中のバグを書くことは非常に簡単です ループのため、そのようなことは初めて ループを通じ、あなた 1つのテキストメッセージを送信します。 ループ私は2回目 もう一つのテキストメッセージを送信している必要があり、 して、もう一つのテキスト メッセージ、および1つ以上。 あなたがタイプミスをする場合しかし、それは判明します あなたは時々、プログラミング時 1を送信するプログラムを書くことができます テキストメッセージ、2つのテキストメッセージ、 誰にでも、その後3つのテキストメッセージ 誰が既にテキストメッセージを受信して​​います。 ご存知のように、何かをして、 プラス何か、プラス何か、 プラス何かが、多くのビッグOであり、 テキストメッセージの、またはN乗、 または$ 0.10テキストメッセージ、$ 20,000。 ありがたいことに私はその前に、コントロール-Cを押し 起こったが、私は少なくとも一つを借りていました あなたの前任者のための$ 20の 200、いくつかの奇妙なテキストメッセージ 彼の電話に行ってきました、だけでなく、 また、それは、古い折り畳み式携帯電話のようでした 彼から押し出さのようなそれはそう 他のすべての個人的なテキストメモリ 彼が実際に得ていたメッセージ。 そこで、一つの目標を持っています 今日、それをしません。 たぶん、機内モードをオンにします。 大丈夫。 それでは、に行きましょう ここcallled--プログラム 私は、PHPドットテキストを呼び出しますこと。 そして、事前に、私はここで2つのファイルを持っています。 私はそれを持って、ちょうどスタッフのためのファイルを作りました スタッフの情報のすべて、すべての名前 コー​​スのWebサイトから。 そして、今の私はちょうど置きます いくつかの偽の番号555-1212。 したがって、これらは実際にはどこにも行かないだろう。 しかし、このCSVファイルの内部に気付きます 我々は前に簡単にについて話します ファイルIOのコンテキストインチ CSVファイルとは何ですか? コンマは、変数を分離しました。 そして、これは一種の非常に似ています 軽量データベース、可能ならば。 4つの列の並べ替えのようなものがあります このファイルで、そこにギザギザ 基本的にはなくコンマ ファイル内の列を表します。 最初の列は、TFまたはCAの名前です。 2番目の列は、彼らの最後の名前です。 3列目は自分の電話番号です。 そして、4番目の列は明らかにis-- 4列目は明らかに何ですか? [OK]を、ので、それは彼らのキャリアのです。 ベライゾン、またはスプリント、または何ではないそう。 そして、私は以前misspoke場合、CSV。 カンマ区切りのCSVはこちらです。 だから私はこれで何ができるのでしょうか? まあこれはただの大きなテキストフ​​ァイルです、 それは右、長いようなものですか? このように起こっています 種類の迷惑です。 そして、それは、しかし、結局のところ、もし私が テキストメッセージを送信したい、してみましょう ここでアレックスを言います。 私は私のブラウザに行こう フルスクリーンモードを終了 ちょうどので、私は前後に切り替えることができます。 私が行くかどうかは、見てみましょう、判明します ここでは、やGmail、すべての権利にログインします。 この部分を見てはいけません。 ただ、私が見ること。 もちろんライブストリームはでき まだ私がやっているかを参照してください。 大丈夫。 だからここだけでGmailのです ジョン・ハーバードのアカウント。 だから私は送信したい場合 アレックスへのテキストメッセージ、 私はもちろん、メッセージを作成することができます。 そして、それは結局のところ、私はしました ここで前にアレックスでそれをテストし、 あなたは、特定のドメインを追加することができます 人の電話番号に名前を付け、 世界に存在するため、 物事は、電子メールゲートウェイにSMSと呼ばれます。 どのすべてというのがファンシーな方法であります その携帯電話を持っている私たちの もちろん、電話番号を持っています、 おそらく、あなたのキャリアのためにそこにあります ような特定の接尾辞 VerizonのテキストメッセージのためのVtext.com あなたが追加することができドットコム、あなたの 自身の個人的な電話番号、およびその後 あなたや友人、またはあなたの両親することができます その特定のアドレスであなたをテキスト。 Verizonは、サーバ、電子メールを持っています サーバー、そのこのメールを受信すると、 その後、数字の部分を見て、 どんな特殊な業界の魔法を使用しています 彼らは実際にそれを送信する必要があります あなたの特定のセルに放送電波 電話。 私がいないので、今これはいいです 実際にテキストメッセージを送信する方法を知っています または、まだコードを書くために 私の携帯電話用、 あなたがのために正確にそれを行う可能性があります 最終的なプロジェクトが、今のところすべて 私はここに私のラップトップである必要があります。 だから私は、そのCSVファイルを反復処理したいです ファイル、行、行によって、ラインで、ラインで、 、スタッフの電話番号のそれぞれをつかみます そのキャリアとプログラムで、 電話を接続し、つまり、連結 適切なドメイン名と番号 して、メールを送ってください。 だから、手順の多くです。 そして、幸運はCでそれを行います これは、状況の悪夢です ファイルを開くには、それを読みます ラインで、ラインで、あなたのようなライン、 見ている、またはすぐに見ることができます 問題で、5を設定していない場合 問題は、4つのセット、及び 動的に連結します 2つの文字列、Cであるため、 2つの文字列を取り、それらを結合するために、 最小限あなたに何をすべきか 最も可能性の高い実行する必要がありますか? あなたは正しい、より多くのメモリを宣言する必要がありますか? そして、malloc関数を尋ねる、私はより多くのメモリを持つことができますか? だから私はこの半分を置くことができます ここで、ここでこの半分。 それはちょうどそう多くのステップです。 そして、そのポイントによって、あなたは失ってしまいました 愚かな小さなデモへの関心 どこにすべての人の携帯電話のビープ音を作ります。 のは、PHPのこの種をやってみましょう スタイル、それによって我々だけ その台所の流しのより多くの使用を開始。 そして、アイデアがあります 基本的に同じ、 しかし、我々はあまりにも心配する必要はありません その下のレベルについてはあまり。 それでは、私がかもしれない方法を見てみましょう これを行うに取り掛かります。 そして、ちょうどそのように、私にはありません 、過去の過ちを繰り返します 私はここで自分のためにいくつかのメモを書いています。 そして、私は私たちを歩くことができるかどうかを見てみましょう 基本的な手順の一部を通って、 そして、時間のために私たちはよ おそらく最終的には、いくつかのコーナーをカット。 私が先に行くとオープンするつもりです ブラケットPHPは、このファイルを起動します。 そして、私は先に行くと、これを実行するつもりです。 あなたとわかるように、ハンドルをファイル すぐに実際に見て 開放Fという関数を呼び出します。 そして、これがファイルを開く覚えています。 そして、引用、引用終わり、 rは再び、何を意味しますか? 読むだけのためにそれを開きます。 今のPセットに、あなたはこれをしませんでした。 そして、ハンドルは何もすることができ、 府、バー、BAS、任意の変数名。 しかし、一般に、コンピュータ 科学者は、開いているファイルを呼び出します あなたのファイルハンドルを与え、 いわば上に保持するために何か。 私はするつもりです いくつかのエラーチェックしてい ハンドルが偽であれば、同じように C言語で、私のような何かをするつもりです、 ファイル、バックスラッシュnを開くことができませんでした。 そして私はちょうどつもりです 先に行くし、終了します。 そして、それは、PHPで、判明します 私は、関数の内部ではありませんよ。 ここには主な機能はありません。 だから私は、それ自体、戻りません。 私は終了します。 本質的に同じものです。 そして、私はおそらく1 Yで終了しています。 一つは、単にいくつかの種類のエラーを意味します。 これは、非ゼロですので、それはエラーです。 すべての権利、私は今ここにダウンですので、もし 私のプログラムでは私は、ファイルを開いています。 私が先に行くと宣言するつもりです アドレスと呼ばれる配列、 Cに私が知っている必要があります 事前に配列のサイズ、右? または私はこれを宣言する必要があります ポインタで、その後、malloc関数を使用しています。 そして、毎回私が読んで ファイル内の別の行を通じ、 私はをmallocする必要がありますするつもりです より多くのメモリ、malloc関数より多くのメモリ。 それは首の痛みです。 そしてありがたいことに、PHP、ルビー、 Python、およびJavaScript、彼ら あなたの配列を大きくします あなたのために自動的に。 これ以上のmallocありません。 これ以上のメモリ管理。 コンピュータはそのの世話をします。 しかし、価格はあなたが支払います。 それは少し遅いです。 そして、このようなプログラムのために 我々が気づかするつもりはありません。 我々は、100テキストメッセージを送信しようとしています。 例えばそれを感じるするつもりはありません。 それは本当にだけに開始します 選択した言語を問題で ときにあなたのデータやプログラム 本当に、本当にかなりの取得、 より多くのようにケースになるように 当社のウェブベースのものです。 しかし、今のところのは前進しましょう​​。 それが判明しているがあります C言語での関数は、fは、CSVを得ると呼ばれます。 ファイルはCSVを取得し、それはとり 引数としてファイルハンドル、 それはによって、その行を進めます 行、行によって、行の中に読み取ります。 だから、それだけで行を読み取り ファイルからのテキストの。 しかし、この機能についての素晴らしいものです それはちょうど私のテキストの行を手はありません。 それは、これらのカンマを探し、 そして、行を解析します。 また、行を解析することで分割することを意味します この文脈で特定の値にそれ。 言い換えれば、ドル記号 行だ変数です 私は、インデックスの束を提供するつもり。 これは、になるだろう 私のCSVファイルの最初の列。 これは、第二になるだろう 列には、これは、第三になるだろう これは、第四になるだろう。 リコール、およびExcelためではありません 我々はこれをした最後の時間を協力し、 私がダウンロードした場合しかし、スタッフは、CSVに点在しています。 おっと、名前は変更しません。 私はスタッフのドットをダウンロードする場合 CSVファイル、およびそれを開いてみてください、 私はすでに私がああregistered--ました 前回Excelを更新しませんでした。 あなたはスタッフのドットのそれが表示されます CSVは、私は4つの列があります。 だから私はで読んだとき ここでアビーのための最初の行、 ドル記号の行0は、アビーです ドル記号の行1は、リヨンで ドル記号の行2は、彼女の電話番号です して、彼女の携帯電話のキャリア。 だから、それがすべてです。 私ので、そしてそれは、うれしいです 今把握する必要がありません。 これらのカンマのすべてが実際にある場所。 だから私は先に行くつもりだと その定義を考えると、これを行います、 私は彼女の名前であることを言うつもりです 行ブラケットゼロ、に約束したよう。 そして、私はgrab--つもりだし、 実際に、あなたは何を知っていますか? 私が心配するつもりはありません この場合には彼女の名前、。 私は単純にそれを維持するつもりです。 私は彼女の電話番号がするつもりです 行ブラケット2には、私は思います。 そして、彼女のキャリアはどこにありましたか? 行3、上の1つ。 だから、何も新しいです。 これは、配列にちょうどゼロのインデックス作成です。 そして今、私は次の操作を実行するつもりです。 キャリアが等しい場合、AT&T--に等しいです 私はちょうどloop--を持っているつもりです 私は、電子メールを作成したいです このようになりますアドレス。 これは、617-555-1212になるだろう で、それが何であるかを、text.ATT.net、 私が何をしたいです。 だから私は、これをどのように行うのですか? 私は、次の手順を実行するつもりです。 彼女のアドレスは、彼女の電話番号であることを行っています そして今、私が先に行くと、これを実行してみましょう。 これは、いくつかのファンキーな構文です。 私は、パーセントのトリックを行うことができ、 私は実際にはこれを行うことができます。 だから、これはPHPのことですが、 それでは、私がやって考えてみましょう。 上のドル記号アドレス 左、ちょうど変数。 私に変数を与えます。 私は型を指定する必要はありません。 PHPはそれを把握します。 右側に、 データ型は何でしょう 上の全部の 右辺? 文字列のように見えます、 二重がありますので、 左端と右端に引用しています。 今ここにいくつかのファンキーな新しい構文があります。 中括弧があります、 ドル記号番号。 しかし、その構文が何であるかを推測します おそらく、私のために行うためにPHPを伝えますか? うん。 ただ、そこに値を挿入します。 だからなしパーセントの。 我々は、印刷F、またはSを使用することができます 印刷Fまたはそのような何か、 しかし、PHPとたくさんの より高いレベルの言語、 あなたができたことを確認するつもりです 多分、機能的に同じことを行います 6さまざまな方法。 そしてそれはなり始めます デザインやスタイルの問題。 だから、これはちょうど不可解探しの方法です 私に電子メールアドレスを与える、というのは、 しかし、プラグインの数が これらの中括弧の間。 そして、中括弧はしません 最終アドレスに終わります。 今、私たちはいくつかのをスキップすることができます 時間のためにこれらの行。 そこでキャリアが等しい場合 verHorizo​​n--のおっとに等しく、 私が何かをしたいですVerizon-- アドレスが取得する場所、非常に似て、 引用、text.ATT.netで引用終わり、数。 そして私は、同じ種類のを行うことができます キャリアの残りのためのもの。 しかし、私はちょうど今のドット、ドット、ドットをやります。 そして今、仮定しよう 私がプッシュする、配列を追加します。 私はに追加します アレイは、アドレスと呼ばれます。 このアドレスは、これはどのようにあります PHPの配列に何かを追加。 あなたは、malloc関数をする必要はありません。 あなたは、配列のサイズを変更する必要はありません。 あなただけの配列、プッシュを言います。 あなたはどのような配列をpush--ために何をしたいです あなたは上に何かをプッシュしたいですか? アドレス。 あなたはアドレスにプッシュしたいのか? 住所。 そして、実際には、あなたの場合 本当に賢いになりたいです、 いくつかのシンタックスシュガー このため、いわば、 これはちょうどあなたがでこれを行うことができますどのように意味します きれいな方法は、これを行うことであろう。 それはあまりにも成長の効果があります サイズ一つのアドレスアレイと、 そして、その追加をウンチ そこに電子メールアドレス。 うん。 聴衆:[聞こえません] SPEAKER 1:上の誤植 他にああ、キャリアをif--。 それで大丈夫です。 また、に私の失敗を好きではありません このプログラムの一部を実装 後で。 しかし、キャッチしていただきありがとうございます。 もう一つのバグを修正しました。 ありがとう。 私たちは、これがVtext.comになりたいです。 はい。 大丈夫。 そこでここでは、これは私たちを残していますか? 我々は、ファイルを開くためのコードを書いています。 我々は反復するループを持っています ファイル内の行を超えます。 私たちは、私に追加するコードを持っています 正しく配列を一度に1つずつ、 フォーマットされた電子メールアドレス。 だから、本当に残っているすべては、送信することです これらの人々のそれぞれに電子メール。 だから私は先に行ってきたと 次のように自分自身を準備。 私はis--ここで行うとしてみましょうするつもりです 先に行くといくつかの実際のコードにスキップ、 これは次のようになります。 そこでここでは事前に焼きです 私が以前書いたバージョン。 そして、私は終わっ気づきます スプリントを実施。 私は、T-Mobileを実装し終えました。 私は、ヴァージン・モバイルの実装を終えました。 そして、私は事前に謝罪します。 そのいくつかのキャリアがあります クラスのいくつかの学生が持っています 私は列挙気にしなかったこと ここでもし状態です。 そうではないすべてのテキストが消えます。 しかし、ここでは私が行う必要がある他に何を見てみましょう。 私は、ファイルを閉じます Pのように4を設定します。 そして、これは新しい構文です。 そして、私たちは少し表示されます 時間をかけてこれをビット、 特にPと7と8を設定します。 しかし、これは作成するための構文であります 構造の特殊なタイプ。 それは、そのライブラリがあると判明します PHPのメーラーと呼ばれる、PHPが付属しています。 生活の中でその目的はにあります プログラムで電子メールを送信。 これは、ことを他の人が書いたコードです 私たちは電子メールを送信することが容易になり、 私たちは維持する必要はありません 前後にGmailに行きま​​す、 人々の電子メールアドレスに貼り付けます。 ラインの全体の束がここにあります その正直なところ、私は一種のコピー ドキュメントから貼り付け。 そして、実際には、あなたがしている場合 好奇心、私はすべて左 ドキュメントのURLの 私たちは後で投稿しますコードインチ そして、の間でそれに気付きます 私がやっている事 私はこのライブラリを言っている、です、 右、Gmailのサーバーを使用できますか? 私たちはときに我々について簡単に話を聞いたのSMTP シンプルなメールであることについてイェール大学にいました 転送プロトコル。 それは、そのプロトコルです サーバは、電子メールを送信するために使用さ そして、that's-- Gmailはそれらのいずれかを持っています。 ポートが、これはTCPポート番号です。 あなた場合は罰金です 前に587を見ていません。 ただ、ドキュメントからそれを知っています。 ここに私のユーザ名です。 私はCF50ボットを使用するつもりです。 そして、その瞬間に、私はするつもりです ボットの実際のパスワードを入力します。 そしてここに至るまで、残るものに気づきます。 私は、アドレスからの私を設定します CS50.netでボットします。 私は送信後悔しないように思います その800人にテキストメッセージ 愛CS50ボットは、おそらく、あなたがいなくて寂しい、と言います 今日それを作ることができなかった人のために。 そして、ライン76で、私は何をしますか? C.のようなルックスのこの種だから私のために 0に等しく、nはequals--今カウントが新しく追加されました。 それはあなたが取得したい場合ことが判明 配列内の多くのこと、 あなたはもうそれを覚えておく必要はありません。 あなたは求めることができます カウントと呼ばれる機能、 そして、それはどのように多くを教えてくれます アドレスは、その配列です。 そして私は追加するつもりです 電子メールへのアドレス。 そして、私はこれを知っているから、 ドキュメントを使用して。 アドレスの追加機能があります。 そして今、そこに気付きます シンタックスの一枚です。 我々は前にこれを見てきました 精神でCに似ています。 あなたはドル記号と考えることができます それは変数として郵送してください。 しかし、それは内部の構造体です どのプロパティだけではありません、 変数必要になります場合。 しかし、それは、PHPでそれが判明 オブジェクト指向プログラミングで Javaのような言語で、あなたがAPCSを取った場合。 ドル記号のメール、あなたがしたい場合to-- それはまた、その中の機能を有しています または方法。 だから、これはそれを言うことです 特別なPHPのメーラー ライブラリ、私はその変数を持っている場合は、 私はその機能をコールする場合 そのライブラリが付属しています、 本日の目的のために、 ちょうどあなたが矢印の表記を使用し知っています。 ドット表記はありません。 それはちょうど、矢印です。 しかし、それはポインタではありません。 それはちょうど、Cの構文から借りています。 だから、呼び出しの内部でアドレスを追加 このライブラリのオブジェクトまたは変数。 大丈夫。 これは魔法のラインです。 それは私が電子メールを送信する方法です。 それが開くのと同じです Gmailの、それを入力し、送信打ちます。 しかし、それは代わりに送信するために起こっています この体で、このアドレスにメールし、 CS50ボットから。 そして今、キーライン。 この行は、2011年のようには存在しませんでした 私が考えるとき、私は最後にこれを試してみました。 そこにその行はもちろん、 アドレスをクリアします。 だから論理的に、私の場合 アドレスはクリアされません。 各繰り返しの後に、第一 電子メールやテキストメッセージは、アリスに行きます 第二は、に行きます アリスとボブ、第三 アリスとボブとチャーリーに行きます、 したがって、非常に高価な間違い 私はその年製。 それでは見てみましょう。 何か質問はありますか? 私たちはあなたにすべてのテキストを送信する前に 10%の確率でメッセージ? 質問は? 大丈夫。 私はここで、変更に行くのをしてみましょう 動作するはずです何にパスワード、 そうGmailではによってブラックリストに載せてしまいます。 そこで、彼らはすべて行っていない可能性があり おそらく彼ら以来、アウト 800電子メールを送信する私たちを好きではありません ループの中のすべてを一度に。 それはありませんので、 特に人間の行動。 ああ、私は一つの他の事を変更するつもりです。 上部にまで、私はsent--するつもりです 学生にファイルを変更するには、CSVファイルに点在しています。 そして、私はこれを開くことはありませんが、これは ない100スタッフと同じCSVファイル、 ただしかし、800の学生、 ハーバードから、エール理由 今週10月凹部を有します。 そして、それはジャークものの一種のように思えます 理由として、それらのすべてをテキストに行うには 彼らは休日にクラスではありません。 それで大丈夫です。 ただ、ハーバード大学の学生 今日、そのファイルの内部。 そして今のに戻ってみましょう 私の端末ウィンドウに。 私は一種の緊張します。 [OK]をので、今、私はに行くつもりです ディレクトリ、PHPのテキストドットPHP。 どのように勇敢なボランティアは? だから私は私にこれをしたくありません。 [OK]を、アップに来ます。 あなたの名前は何ですか? MAYA:マヤ。 SPEAKER 1:マヤ。 、マヤをご利用下さい。 大丈夫。 これが動作するかどうかを見てみましょう。 私は中に自分のメールアドレスを入れて ファイルに自分の電話番号をfile--、 その結果、うまくいけば、私は同様に1を取得します。 始めまして。 MAYA:同様に。 SPEAKER 1:だからあなたがしなければならないすべては、 800テキストメッセージを送信するためにEnterキーを押し、 私が台無しにしなかった場合。 ニース。 統計的に、時間がかかる場合があり、 我々は、電子メールに得るまでaddress-- テキストメッセージ 客室内に今。 のが残ると見てみましょう。 聴衆:[口笛] SPEAKER 1:ああ、はい。 聴衆:ああ、知っておかなけれ。 SPEAKER 1:ループの場合、これをare-- なぜなら、PHPのゆっくりではありません。 これはGmailのために遅いです 私たちを絞るとされていません 私たちはより多くを送信させます 毎秒1つの電子メールのように。 何? これは私がでテストするためにハードなものでした ちょうど私と私の電話と一緒に家、そう。 それがうまくいけば、ボットからですか? はい? なし? そう言います。 なし? それは友人からですか? ぎこちないです。 OK。 かなり確信して、それはも取り組んでいます。 Uhオハイオ州。 彼らはああ、ちょっと待っblack--。 ああ、あなたは何を知っていますか? しばらくお待ちください。 MayaとI--ミアだけは、それでしたか? MAYA:マヤ。 SPEAKER 1:Mayaは、しようとしています 私がここで間違って何をしたか知っています。 ああ、ちょっと待って。 私はちょうど100を送ったと思います 555-1212へのテキストメッセージ。 待機する。 私は今年勝つことはできません。 OK。 マヤ? ポストプロダクションでそれを修正してください。 くそ! アドレスから次に示します。 [OK]を、待機。 ごめんなさい。 これは、毎年痛いです。 [OK]を、一瞬。 これは良いです。 私の代わりにこれを行うつもりです。 印刷アドレス。 [OK]を、待機。 印刷アドレス、ブラケット私は。 ええ、私はそれが好きです。 ドルsign-- OK私は私は何を説明します 私はこれを実行した後、一瞬でやって。 毎年。 [OK]を、ここに私達は行きます。 私はjust--あると私はしたくありません みんなの電話番号を表示するには、 しかし、Mayaは確認することができます 頭のうなずきで、 彼女はすべての人のを見ていること クラス内の電話番号 私はにコピーするつもりだということ Gmailのと呼ばれるプログラム。 また、Gmailであれば、私たちが言いたいのですか? あなたがいなくて寂しいです。 Love--それは私からではありません。 私もまだ送ってヒットしていません。 それでは、先に行くとしましょう これは、私がズームインすることができます。 OK。 だから私は今はGmailと呼ばれるプログラムを使用しています。 マヤ場合、あなたはしたいのですが [送信]ボタンをクリックし、 私たちはどのようなことをシミュレートします コー​​ドが行っているはずです。 何? [BEEPS] 聴衆:うん。 SPEAKER 1:はい? 救世? 聴衆:うん。 SPEAKER 1:ミスます。 そして、私は残りの部分を送信するつもりです。 私は考えていませんでしたので、私は半分を送りました Gmailは、それらが通過させることになります。 だから今日は一日で、覚えて 私はGmailに使用できることを学びました。 それは恐ろしいでした。 マヤに大きな拍手。 ありがとう。 そう、すべての権利。 何 [BEEPS] 我々は、はい、いくつかのビープ音を得ましたか。 大丈夫。 今、私は本当に700を取得するつもりです バック同級生から不幸のメール。 だから、少なくとも、我々が表示されます それはそれの価値があった場合。 だから、何が間違っていましたか? 私が行ったかを把握します 事後に間違って、 しかし、どれだけ簡単に見て それはPHPでそれを行うことでした。 だから我々は、実際には今では何ができます 我々は、PHPのこの表現力を持っています。 恐ろしいされたことをwas--。 大丈夫。 だから、出て行っているべきものでした。 これは私が上で今朝をテストしていた私の 電話、私の携帯電話の実際のスクリーンショット。 しかし、今のはなぜ考えてみましょう 私たちは、実際に導入しています 最初の場所でこのようなもののすべて。 だから目標はにではありません これらのプログラムを書くこと コマンドラインで書かれている、右か? だから私は、単純なを書きました こんにちは、私が書いたプログラム、 条件文を行う小さなプログラム、 などのリード線とを使用していました。 そして、理論的には、私は書きました 送り出されたプログラム 800テキストメッセージ、800を与えるか、または取ります。 そして、そのプログラムは、すべてのでした まだコマンドラインで実行します。 そしてもちろん、それはあります ないウェブ、右? 目標は、今使用して起動することです 私が主張して使用する方が簡単です 言語は、より多くのをあえて 面で強力な言語 その機能の 開始するには、それが付属して Webページを生成するコードを書きます。 だから、最後の時間、最後の週、 我々は、HTTPとHTMLについて話しました。 また、HTMLのいいものです それだけで、純粋なテキストであるということです。 そして、テキストは確かにありま​​す 何かそのことができます 文字通り印刷を呼び出して印刷 F関数、または印刷機能。 そして実際、それは、PHPが何であるかです 今、私たちが何をできるようにするつもり。 だから、例の中で、私たち 今日のソースコードを持っています、 コー​​ドの一部に加えて、 私は一瞬前にそこに置くこと、 我々は、例えば、このようなプログラムを持っています。 Froshims、または新入生 学内スポーツは、実際にありました 最初extracurricularsの1 私は数年前に巻き込まれました。 そして、私のルームメイトと私、と キャンパス内のいくつかの他の子供たち、 froshimsプログラムを実行するために使用されます。 私は今、私のテキストメッセージを取得しています。 今私たち、戻って一日で、ので、この インターネットがあった、1996年かそこらでした、 しかし、そこにはprocess--はありませんでした froshimsにはウェブサイトではありませんでした。 だから、あなたはのためにサインアップしたい場合 サッカーやバレーボールまたは何、 あなたはこのことを記入う 一枚の紙と呼ばれます あなたはハーバード大学を歩いて渡ることになります 庭、そしてあなたがそれをスライドになります プロクターのメールスロットに、人 ウィッグルスワース、寮を1にしました。 そして、これはあなたが登録されました。 そして彼または彼女はそれからでしょう あなたに電子メールを構成します 手動で、ずっと私のような ただ、Mayaにここにいました そして、あなたは確認することになります 登録されているとして。 だから、これは低いようでした 果物をぶら下げ、いわば。 それは一種の愚かなことでした 我々はこのために紙を使用していました。 私は、私たちができるようにしたかったです ちょうどウェブサイトに行くために、 または新入生がに行く持っています ウェブサイトは、スポーツに登録、 ちょうどこのようなものの多くを自動化します 自分の名前とメールアドレスを入れることにより、 などのデータベースに。 そして、実際には、非常に最初のバージョン ウェブサイトの、超醜いHTMLを使用して、 このような何かを見ている可能性があります。 それはより多くの、皮肉なことに、実際にありました このバックよりも恥ずかしい格好 その後。 しかし、私はプログラミング言語を使用していました。 PHPのではなく、Perlのと呼ばれていません、 これは古い言語であり、 しかし精神に非常に似ています。 そして、私だけで完全に 自分自身にそれを教えてくれました。 そしてそれは、それを把握するために私にしばらく時間がかかりました 友人の質問の多くを尋ねます。 しかし、そこにアイデア 全く同じでした。 PHPが実際に設計されたものため、 ためには、コマンドラインのものではありません 我々だけで演奏、 しかし、Webプログラミングのための。 それは本当に、その機能に関連付けられています 次のように、ウェブに設定してください。 これはfroshimsです。 そして、私がしたい場合 このフォームで登録し、 これは、非常に醜いです 確かに、しかし、私は先に行きましょう 少ない快適な学生であること、 そして、マシューズのためにどのようなスポーツ、 [登録]をクリックします。 私は何をできるようにしたいことはあります フォームから情報を送信し、 ないように、Googleのサーバーに 我々は完全に、最後の時間をしました 私は、彼らのバックエンドを使用して不正行為します 私自身のバックエンドのコードを実装したいです。 どの書き込みPHPを意味 URLに住んでコード そのフォームデータをに提出することができます。 そしてあなたのコード、 サーバー上のPHPで書かれ、 そのユーザ入力に応答することができます。 彼または彼女の名前、または快適さのレベルと同様に、 またはその後寮、とそれに何かをします。 ただこの場合、I 愚か、それをプリントアウト それはかなりすべてではないテキスト、など。 しかし、あなたは確かに可能性 あなたはHTMLを知っていれば、想像し、 あなたはすぐに生成する方法を知っていますよ 印刷F、および印刷したHTML、 同様の機能と、あなたは確かにすることができます 、と言うきれいWebページを生成 ちょっとデビッド、あなたが登録されています。 あなたは、あまり満足しています マシューズからの学生は、右? あなただけ%のSESの全体の束を使用することができ、 または中括弧やドル記号 私は一瞬前に使用される表記に よりユーザーフレンドリーなテキストを生成 これより。 それでは、このいずれかのファイルを見てみましょう。 FroshimゼロドットPHPはこのようになります。 私はCS50 IDEをリロードすると、 froshimゼロは次のようになります。 これはfroshimゼロドットPHPです。 そして、あなたはこのファイルについて何に気づくのですか? 聴衆:[聞こえません] SPEAKER 1:申し訳ありませんが、もう少し大きな声で? 聴衆:[聞こえない]それはHTMLですべてです。 実際に、それは、からです PHPに関する興味深いもの それが設計されたということです よりよいのために、することが または悪化のため、混在 HTMLコードを持ちます。 そして、実際には、これでもかの ファイルゼロドットPHPをfroshim 一番上のPHPのコメントがあります それを、それはすべてのHTMLだけです。 しかし、対照的に、私が開く場合、してみましょう たとえば、ゼロ点PHPを登録します ちょうど上部に大きなコメントしています。 これもほぼ完全に見えます 何を除き、HTMLのような? ラインは、何を、21は少し奇妙に見えます。 しかし、私はPHPモードに入っています注意してください オープンブラケット疑問符PHPで。 それから私はいくつかのものを持っています。 そして、その行の終わりに ほとんど私が持っている、マークのPHPを疑問視。 そして、これは私が混ざりによって何を意味するかです。 あなただけのHTMLを書くことができます サーバが吐き出すしたいです。 しかし、あなたが何かをしたい場合 ページを使用したダイナミック途中、 以下のように私の名前を挿入したり、 寮や快適さのレベル、 私は、関数を使用することができます ある印字Rのような ただ意味し、再帰的な印刷 それをフォーマットすると、この変数をプリントアウト しかし、あなたがしたいです。 それは、本当にありません 人間の目的、それだけです デバッグや診断目的のために。 だから、私はそれをした方法です。 私が代わりに2点のPHP froshimsに行く場合は、 気づく、このフォームのアクション ゼロドットPHPを登録されていません old--前のものは実際にありました。 しかし、それは、二つのドットPHPを登録しています。 それでは、どのようにこの1を見てみましょう 少し異なる動作をします。 私はバージョン2に進みます。 ここでもし私がデビッドとして登録すれば、より少ないです マシューズの寮から、快適、 登録します。 そこで今回は、それはあなたが言いました 本当に、登録されています。 のは、私がここで何をしたか見てみましょう。 私は、レジスタ2のドットを見てみると PHPは、これはいくつかのより多くのPHPコードを持っています。 それが、少しクリーナーです まだこのラインに少し長いラップします。 ここで注意してください。 私は私のHTMLタグをプリントアウトし、私の頭のタグ、 私のタイトルタグ、頭、体。 そして、私が言うことを始めます PHPモードに入るようなもの。 そして、そのタグので、オープンブラケット PHP--疑問符PHPは、言います ちょっと、サーバー、解釈execute-- PHPなど以下のもの あなたは終了タグが表示されるまで。 そして、あなたはいずれかを知らないかもしれないにもかかわらず、 あなたがこれまで見てきたよりも、他のPHP、 あなたが種類の読むことができます それはかなり直感的。 名前が空である、または快適である場合には 空、または寮が空である、私は何をしますか? 私は、ユーザーに何を言うのですか? あなたの名前を提供する必要があり、 快適さ、および寮など。 そうでなければ、私はあなたがあると言います 登録され、十分ではない、本当に。 そして、私は実際にはないと言います 何のデータベースはありませんので。 私は、データを使って何をやっていませんよ。 私はちょうどそれを捨てています デモンストレーションの目的のために。 今、私は一種のライン22を介してskimped。 より多くの構文があります そこが、ドル記号 ポストが面白いの一種である強調する。 そして、これはPHPに関する素晴らしいですものです。 PHPでは、あなたは何と呼ばれる持っています いくつかのスーパーグローバル変数。 彼らはより多くの種類のあります グローバル変数よりも重要。 そして、これらは、すべて大文字で など、PHPを使用しています。 ですから、Aは、サーバーがある場合 Webサーバは、Apacheのように、インストールされ、 あなたが言語をインストール 突然のすべてのあなたのPHPのサポート これらのスーパーの使用を開始することができます あなたのコード内のグローバル変数。 約素敵なものです PHPは、あなたの場合ということです ドットで終わるファイルを書き込みます PHPは、Webサーバ上に置きます そして、あなたはそれにフォームを送信 そのアクションタグとformタグを経由して、 で、そのaction属性 formタグ、PHPとウェブ 完全につかむ方法を割り出し これらのキーと値のペアのすべてのアウト 質問のようなURLの マークqは、猫に等しいです それはどのようにQや猫を把握します。 あなたは写真、またはユーザ名を送信すると、 またはパスワードが、Facebookを利用して好きに PHPはあなたのために把握します ここで、そのデータのすべてです。 そして、それはちょうど手になります あなた連想配列 ドル記号、アンダースコアポストと呼ばれます、 またはドル記号、アンダースコアは、取得します あなたがいるかどうかに応じて GETまたはPOSTを使用して提出。 そして、それはちょうどあなたの手になります スーパーグローバル変数、 そのようにあなたが名前で取得したい場合 ユーザーがそのWeb経由で送信することを フォームは、あなたは文字通りの名前を言います スーパーグローバル変数の、引用、 引用終わり、名前。 そして、引用、引用終わり快適さ、 そして、引用、引用終わり寮。 そして、我々は行うことができるようになるだろう これとそんなに多くPHPで。 これがあったにもかかわらず それに旋風一見、 我々ははるかに来週中に潜るます。 我々は、データベースを紹介します あなたが実際にしているように、 実装を開始する予定 独自の電子取引based-- ちょうど一週間の時間のウェブサイトのように。 だから我々はあなたに次の時間が表示されますし、 あなたがテキストメッセージを持って期待しています。 さようなら。 [音楽再生] [ドア開口部] SPEAKER 2:ねえ。 SPEAKER 3:何までですか? SPEAKER 2:あなたは何をしているのか? SPEAKER 3:設定の問題に取り組みます。 SPEAKER 2:ニース。 5高いです。 [ハイファイブ] ええと、あなたはここで何をやっていますかare--? SPEAKER 3:ちょうどぶらぶら。 戻ったばかりのジムからです。 私は助けることができなかったが、 ときに我々は、高fived気づきます、 あなたはかなり手荒れを持っています。 あなたはジムに行くのですか? SPEAKER 2:いいえ いいえ。 SPEAKER 3:おい、あなたはかなり大きな見えます。 誰もが知っているので、どちらが、悪いです 8ボールは、キャンパス内に大きな男です。 高5。 SPEAKER 2:ええと、ありません。 いいえ、私は良いと思います。 私は良いと思います。