[Powered by Google Translate] [第8項] [あまり快適]
[ネイトHardison] [ハーバード大学]
[これはCS50です。] [CS50.TV]
>> 最後のセクションへの我々の第二へようこそ。
今週、私たちは、PHP、そして次の週の話を​​するつもりだ
我々は1クイズのために少しのレビューをやる。
私たちは、問題設定し、パックの3ページ目に開始するつもりだ、
そして我々はかなり迅速に質問のセクションを介して動作します。
3ページ目に、我々はCとPHPの間のこの違いについて話し始める
PHPは動的型付け言語であるという意味で、
Cは静的に型付けされているのに対し、
と誰もが本当に早く、PHPのようなもので、コーディングを行っている
やPythonやRubyの前には、JavaScript？
全く新しい？オーケー。
>> 私が今述べたことをこれらすべての言語
CおよびC + +やJavaのような言語とは大きく異なっている
変数を宣言するときに宣言する必要がないという意味で
それがどのような変数のため、C言語で私たちはいつも言ってしなくて立ち往生していた
これはint型の変数であることを行っている、またはこれはchar *変数になるだろう、
RubyとPythonでPHPの、と一方
これらのより近代的な言語の多くでは、すべてであることを行う必要はありません。
あなたは自分の変数を宣言しており、PHPの場合
あなたは、$記号を先頭に付けることで、それが変数であることを宣言
その後、変数の型は、それが保持​​している値によって決定されます
これはクールの一種である。
この少しいじって、我々はここにサンプルPHPコードを持って
開始タグと終了タグの間にインチ
我々は、ある意味でHTMLのように、この種のを使用していること
私達は開いたり閉じたりするここで、これらの角カッコを持っている。
あなたは、HTMLでこれが表示されます。
あなたもXMLと同じ種類の構文が表示されます。
>> これは、PHPブロックの始まりを示します。
これですか？phpがPHP固有のものです。
我々としても？>ですべてを閉じます。
あなたが好きなものは何でも使って我々のアプライアンスでファイルを開きましょう。
このパケットには、dynamic.phpを呼び出すように述べています。
真実では、あなたが好きなものは何でもそれを呼び出すことができますが、ファイル名が出てくる
以降では、そうちょうどあなたがそれを呼び出す何でも覚えていることが重要。
私は、アプライアンスに切り替えるつもり
と私はのためのディレクトリを作成するつもりです
セクション9は、私たちが今にいると信じています。
そして、我々は、セクション9に行くよ
と私はgeditを使用するつもりです。
Let 'sは、geditを見て、私は私dynamic.phpを呼び出すつもりです。
ブーム。
dynamic.php内では、これはPHPファイルであるため、
と私は、PHPインタプリタを介してこれを実行したい
私は、これらのオープンタグですべてをオフに開始する必要があります
ので、私はすぐにそれらの権利を開始するつもりだ
自分自身のタグの間に少しスペースを与える、
その後この練習のポイントは、をいじってました
この関数は右ここにGetTypeを、この関数のように、GetTypeメソッドと呼ばれる。
>> そのようにアンダースコア（_）またはスペース、ハイフン、または何もないがないことに注意してください
2ワードを分離し、完全に、ちょうど1つの単語を取得し、入力します。
私は、GetTypeに変数を渡した場合でも、これが何を尽くすことであり、
$ varまたは$ xを、言う
これは私にデバッグ形式の種類のを教えてくれます
そのタイプの名前は何ですか。
我々はここで試すつもりです。
具体的には、あなたは、psetスペックを振り返ってみると
我々はここでコードのいくつかの異なったラインを持っている。
コー​​ドの最初の行では、この変数は、$ varを、初期化する
7に等しくなければ、それから私達はこのprintfの行を持っている
ちょっとよると、printfのvarは空白になっています。
printf関数はPHPで物事を印刷することができます多くの方法の1つです。
多くの場合は、printf関数の代わりに使用するエコー機能が表示されます
しかし、printfは、我々はすべての中にC言語でコーディングされたものに慣れている。
あなたが実際にできることは、コピー·アンド·ペースト機能するかどうかを見てみましょうです。
私はこれを試してみるつもりです。
我々は、アプライアンスにフェールオーバ帰る。
さて、私たちはそこに行く。
との間隔は少しファンキーですが、ここに私達は行く。
私たちはここに、このコードを持っている。
>> [生徒]タブにそれをすることは良くないスタイルですか？
申し訳ありませんが？
[学生]はタブにそれをする従来のか？
タブにそれをどうかにそれのコンベンション場合は右側なので、サムは尋ねます。
一般的にはい。
この場合において、私はしないことを選択しました。
正直なところ、あなたは別のプログラマーの間で異なることがわかります。
PHPは通常、HTMLと組み合わせてよく使用され
と他の言語など、時には印刷は少しファンキーになります
あなたは、PHPの開始タグおよび終了タグでインデントします。
それは本当に異なります。
この場合、コピー＆ペーストは、私のためにタブを貼り付けられませんでした
それは間違いなく、あなたが言ったように、それは明確にするものでもありません。
すべての権利は​​、dynamic.phpでこのコードを保存した場合
次に何をすることができることは、ここで私は右下のどこにいる端末ウィンドウに降りてくるの​​です
geditで、コンパイルと同等の機能を実行する
makeを使用して、Cでコードを実行している
あなたがPHPファイルにしなければならないすべては、PHPインタプリタを起動している
これは、PHPと呼ばれる小さなプログラムです。
そしてあなたはインタプリタに与える引数は、解釈したいファイルです。
この場合、dynamic.php。
おっと、私はそれをどこに置いたのですか？
ああ、私はセクション9でそれを入れて、ここで私は思います。というのはそういう意味です。
>> 今、私は再びそれを実行する場合
私たちは、私の最初のGetTypeメソッドの関数呼び出しでそれを参照してください。
varは整数です。
次の1 varに文字列であり、その後、第三1 varに真偽値である。
我々は戻って上にスクロールするとどうこのことについて興味深いのは、我々はそれを見ている
これらは、我々はCで持っていたものと同様のタイプです
我々は、C言語でint型を持っていた
私たちは、ソートのため、C言語で文字列を持っていた
ので、文字列は、その意味では完全に合法的なタイプではありませんでした
私たちのCS50文字列は本当に何だったのですか？
申し訳ありませんが？ミッシー？
[ミッシー]からchar *。
うん、それは我々が使用される、このchar *型であった。
学期の冒頭に私たちは、文字列型を使用していた
それは実際にボンネットの下にはchar *であった。
PHPでこれらの文字列は、実際の型であるのに対し、我々は、ちょうど、それを定義した型。
このchar *型のもののこれ以上はありません。
>> あなたは、私たちは文字列で、より多くのことを行うことができていることがわかります
はるかに簡単にPHPで我々はC言語でできたより、
そして最後に、我々は、このブール型を持っており、ここでの大きな違いは、
我々は戻ってスクロールダウンする場合、我々はこれらの種類の名前があ​​ることがわかり
現在、整数、文字列、ブールの代わりにint型とboolアール
そしてあなたは、さまざまなプログラミング言語を拾うように、
あなたの生活の中でいくつかの点であなたと接触することを前提
別のものは、このように少し癖があることがわかります
ここで、Cは整数個のint値を呼び出します。
一部では、整数と呼ぶ。
あなたが出くわすだろうと他の用語があります。
ビッグint型は、SQLで今日見た。
数と、ブール、boolは、もあります
そこの違いのすべてのソートされます。
>> これはものすごく興味深いものではありませんが、今私はあなたの時間の少しを与えるつもりだ
我々はズームインしている場合、アウトするには、ページ3の下部にあるこの演習を通して動作
それはタイプの下部には、ここにこれらの値に対応するかを尋ねる場所。
私たちは3.50を持っている。
我々は興味深いです、右ここにこの事を持っている。
あなたが講義に沿って続いてきた場合でも、我々は、その前に見ていない
あなたはおそらくすでにそれが何であるかを知っています。
その後、我々は、これがファンキーの一種である、これを持っている。
あなたはこれを認識しています。
C言語でこれは何ですか？
サム？これはC言語で何をあなたに与えるでしょうか？
それはdynamic.phpというファイルを開き、それが読みやすくなります。
うん、と私たちは？>>ファイルスターにこれを割り当てることを変数の型になります。
まさに、我々はファイルのスターにこれを割り当てます。
これも正当なPHPです。
それを実行します。あなたがそのGetTypeメソッドに渡すときに何が起こるかを参照してください。
そして、またそれがPHPであるかもしれないものは、nullが何であるかを確認してください。
私はあなたに数分を差し上げます。
あなたは文字通り、これらの値をコピーして貼り付けることができ、
それから私達はあなたに少しランダム呼び出しをやる
そして、あなたが得たものを参照してください。
>> [学生]私は質問があります。うん。<<
講義の一つでダビデは、あなたのファイルの先頭に置くことができる何かがあると述べた
あなたは、PHPで毎回入力する必要はありませんように。
あれは何だ？
彼はおそらくポンドの強打、強打ハッシュについて話していました。
それはあなたが実行ファイルとしてファイルをマークすることを指令だ
あなたがファイルを実行するときにそれが何をするかである
それは、シェルプログラムを教えてくれます
ファイルの内容を解釈するためにPHPインタプリタを使用します。
この特殊なラインだったものであること質問
我々としては必要がないように私たちのPHPファイルの先頭に含めることができること
我々は、ファイルを実行したいときには、このPHPの行またはこのPHPコマンド？
そして、あなたが実際には別のファイルの束でこれを行うことができます。
私は、それがPHPバイナリが格納されている場所に依存信じる
しかし、しばしばusr / bin / phpを起動するには良い場所です。
お使いのアプライアンスに戻ってダウンして行くことによって、正確にこれを把握することができます
そしてこれは、PHPを入力する。
あなたがバイナリを実行しているときにどのコマンドを割り出し
または対応するファイルはコマンド。
これは、PHPは本当にこのバイナリファイルエイリアシングであることを教えてくれ
それは、システムバイナリの多くがインストールされる場所ですusr / binに、に格納されている。
たとえば、私は今、私は＃これを入れたところで、一番上までスクロールした場合！ここで行
私がダウンしてスクロールすることができます、と私は実行しようとすることができます
dynamic.phpが、私は拒否される権限については、このエラーが出る、
そしてそれは何を意味すると、このファイルが現在実行権限を与えていないことです。
それは、誰かが実行できるファイルとしてマークされていない。
>> あなたは、メイクやClangの走って、そこから実行ファイルを手に入れたとき
コンパイラは、ちょっと、私は、実行可能ファイルを構築していることを知っているのに十分スマートだ。
あなたは、おそらくそれを実行したいので、それは自動的に構成します
あなたのための権限。
あなたが最初から正常なファイルを作成するとき、これは、しかし、そうではありません
その理由は、一般的には、システム上の任意のファイルが実行可能である必要がありますしたくないさ
ので、実際に行くと手動で行う必要があります。
それを行うための最も簡単な方法は、chmodコマンドを使用することです
とchmod + xは実行可能ビットを追加すると言う
読み出しビット、書き込みビットと実行ビットが存在したため、
のr、wとx、
とchmod + xが実行可能ビットをオンにすると言っ
我々はこのケースでdynamic.phpされる、指定したファイルのためのその後。
>> [学生]は、それは皆のためになっていますか？
これをチェックアウトするので、どのように私は権限を確認するには、チェックしてみましょう？
あなたは、私はファイルのパーミッションを確認してくださいと思います知っていますか？
[聞き取れない生徒の応答]
申し訳ありませんが？>> [学生]のXSD。
XSDは、私たちにハック内のファイルを提供します。
すべてのファイルの一覧表示は、-l、私に私のディレクトリ内のすべてのファイルが表示されます
彼らの長い、冗長なリストの一種で、ので、ここで我々はそれを参照してください。
このdynamic.phpファイル
最後の16:21で11月5日に行われました。
このファイルの所有者がjharvardされています。
それがログインしているユーザーです
それは、私が働いているように、ユーザーの
は、アプライアンスでもなら、あなたはまた、ユーザーjharvardとして取り組んでいます。
あなたは、学生グループにいる
そしてこれらはあなたが十分な頻度で表示されますものです。
>> 我々は、ここでの詳細の多くに行くことができます
ほとんどの部分は、あなたが見て探しているときに見てみたいものを
ファイルには、主に実行可能であるか否か
ファイルを所有するユーザー、所有者、
このjharvardので、それから私達は持っている
左にこっち権限ビット、
これを読むための方法は、その最後のビットです
一般的にかどうか、少なくともこのケースでは、マーキングに使用されている
この最後のビットがしばしば示すために、広告に設定されます
ファイルがディレクトリだけでなく、通常のファイルであること。
右ここに続いて、次の3ビット
、ファイルの所有者が持っている権限を決定
ので、この場合jharvardは、ファイルの所有者として、このファイルを読み書きできる
しかしjharvardこのファイルを実行することはできませんと言ってダッシュはそこだ。
、次の3ビットは、グループのためのものですので、これは学生のグループです
私のアプライアンス上で複数のユーザーが、あったので、もし
そして我々は、学生グループの一部として複数のユーザーを持っていた
その後、それらはすべて、このファイルを読むことができますが、彼らはそれを書くことはできません
と同様に、誰に、世界
同様に、このファイルを読むことができますのみ。
このことについて良い、長い記事は、あります
そのため、オンラインで読むことができます。
問題セットの仕様では、さらに詳細にこれに入る。
>> [学生] 218は世界に言及されていますか？
218はオフで私の頭の上私が忘れている、
しかしない。
見てみましょう。私は今、その右側にブランキングしています。
戻る我々はこのchmod + xををどうする程度であったもの
我々はdynamic.php実行権限を与えたいと思ったところ、
との質問は、これは皆に実行権限を与えるかどうかではありませんでした
またはちょうどjharvardため、私たちはすることによって、これを見ることができます
コマンドを実行するとls-lと入力し、
そして今我々は、それが実行可能とマークされたていることがわかり。
あなたは、色の変化があったことがわかります。
今すぐdynamic.phpは緑で表示されている
そしてそれが何で、シャーロット、質問への答えのように見えます？
[シャルロット]のみjharvard。>>のみjharvard、うん。
>> 我々は皆のために実行可能フラグをオンにしたい場合
どのように我々はそれを行うのでしょうか？
任意の考えですか？>> A + X？
ええ、その通りです。
シャーロットは、我々はdynamic.phpの+ xのchmodを行うことができると述べた
そして今我々は、ls-lを実行した場合、我々は実行ビットがわかり
確かに皆のための電源がオンになっている。
そして、あなたが実際にこれの逆を行うことができますので、あなたは誰のためにそれをオフにすることができます
マイナスを使用。
今ではオフになって、そして今我々はjharvardために元に戻すことができる
私たちは実際に今それを実行できるように、
我々は＃この特別なコードを実行したときに、今、あなたはを参照してください！上部のライン、
＃！ライン、シェルを告げ、
このファイルが実行されたときに、ちょっと我々の端末を告げ、
このファイルを解釈するために、/ usr / bin / phpを使う
その後、出力を印刷します。
[聞こえない学生の質問]
確かに、私は戻って上にスクロールしてみましょう。ただ、このように。
あなたは、これらのディレクティブのすべてが感嘆符は、このポンドで始まり、わかります
時にはシバン、ハッシュビッグバンと呼ばれる。
>> [学生]我々はそれを実行可能にする前に、どのように我々は、phpのdynamic.phpでそれを実行することができますか？
質問は、どのように我々はこれを実行することができますPHPバイナリを使用していた
dynamic.phpは実行可能ではありませんしながら？
これは正確にどのようなので、これは超重要です
あなたは問題セット7を書くときにそれが動作するように起こっている。
時間のPHPファイルのほとんどは、直接実行可能ではありません。
それは実行可能ファイルのPHPバイナリだから働く方法です。
インタープリタは、実行されているものです
ので、それが何をやっている、文字通り全体の内容にズルズルさ
当社dynamic.phpファイルと行で行くの行の
それらのコマンドを実行するので、それは私たちのPHPファイルを使用している
命令のリストとして。
それは直接それを実行するわけではありません。
我々は、これらのファイルは、実行時に解釈していると言うところです。
これは、実行時の言語の代わりにコンパイル時に決定されている何か
Cのようなコンパイル言語ではない
>> それはコンパイル時の言語だかのように行動するために、実行時の言語を取得する方法は、ありますか
あなたは、すべてのサーバーで行わ稼働している場合など
のではなく、あなたは私が何を意味するか知っていますか？
はい、そう質問です
より多くの言語のコンパイル時の型と同様に機能するように、実行時の言語を取得する方法はありますか？
そして、これらの企業の多くの研究の活発な分野であること、私が言いたいのは、そこにあります。
私は、FacebookはPHPを使用して多くの作業を行っていると思われる
そして、それを下にコンパイルが速くなり、それを最適化する
自分のサイトはPHPで構築されているので。
あなたはまったくNode.jsのに続いてきた場合、
これは、JavaScriptインタプリタの一種である
Webブラウザの外で、ブラウザの外でJavaScriptを実行できるようにするには、
伝統的にJavaScriptはちょうど、FirefoxやChromeの内部で実行されるため
そしてそれはクールなアニメーションは、Webページ上で実現するために使用されるであろう
あなたのウェブページを動的にする。
それはGoogleがやっていることを多くの仕事に基づいて構築されている
JavaScriptとC + +のようにし
一緒に結合するため、積極的な研究の多くにはあり
これらの言語は、それらを相互作用し、最適化するために取得
主に非常に多くの人々はPHPとJavaScriptでコーディングすることができますので、
それははるかに簡単だからです。
それは多くのよりよいです。あなたは、ポインタを持っていません。
あなたの周りの浮動小数点型を持っていない。
彼らは、これらのコンパイル時の言語の利点を得るしたかった
すべての型チェックと高速·低メモリ使用量とそれのすべてを持つ
まだ柔軟性とこれらの新しいものの使いやすさを維持しています。
>> バックアタックの我々の当初の計画に。
私達は私達の問題セットの仕様でここにこれらの質問のいくつかを持っている。
のが本当にすばやく通過し、我々は部屋の周りに行くよう。
シャーロット、3.50はどのようなタイプですか？
[シャルロット]それは二重です。>>それは二重です。
ジミー、この次の1は何ですか？配列を。>>
配列、素晴らしい、とJared、fopenは何ですか？
[ジャレド]それはリソースです。>>それはリソースです。
それは新しいものではなく、ファイルのスターではなく、ファイルのようなものだ。
これは、PHPの型であるリソースです
と私は申し訳ありませんが、エラは、最後のヌルは何ですか？
ヌル。
nullの場合、それはどのようにPHPで綴られている？>>同じように。
同じように、首都？>>うん。
うん、大丈夫。
ここで行く、我々は二重を持って、我々は、配列を持っている
我々は、リソースを持っているし、我々は、nullを持っている。
今あなたが見ている、見てみましょう
見てみましょうので、今、私はまた何をしたいのか推測はプルアップされ
右ここにこのWebページは、このphp.net /マニュアル、
君たちはそれをコピーしてWebブラウザを開きますので、もし
私はChromeをプルアップするつもりですが、そのインチ置く
私はこれだけではないので、お見せしたい
我々は、型とすべてのその楽しいものについて一日中話すことができる
むしろ、これはPHPのマニュアルであるため、
とPHPプログラマーの多くはそこにあります。
そこにPHPのWebサイトの多くはありますが、
その結果としては、PHPに関する資料の多くは、そこにある
と手動、このphp.netは、行くには本当に良い場所です
あなたは、PHPでXを行うための最善の方法だかについての質問があっていたときに
またはどのような機能は次のようになりますか？
これが原因のように見えるものに慣れ親しむことだけの種類
あなたが頻繁にここに来ることでしょう、問題のビット7を設定します。
>> あなたは、PHPを使用して、最終的なプロジェクトをやってしまう場合
これはあなたが非常によく知り合いになるだろう場所になります。
しばしば人々はこれを行う方法は、彼らがサイトを検索するためにGoogleを使用している、
そして、彼らは小さなの一種である右上にここまでの検索ボックスを使用しないでください。
あなたは、PHPとは何かの周りをグーグルしていては、表示された場合
マニュアルのリンクのいずれかを使用すると、通常、その頼ることができるポップアップ
かなり良いリソースとして。
素晴らしいので、外にこれらのタイプの、ただ好奇心から、
どれが私たちが見ていない？
我々がここで見たことがない何？
[学生]リソース。>>我々は、fopenの呼び出しでリソースを見ました。
[学生]オブジェクト。>>オブジェクト我々は確かに見ていない。
コー​​ルバックは、我々は見ていない。
これらの擬似タイプのいくつかがあります。
我々は間違いなく唯一の整数およびdouble見た。
我々は、他のいくつかを見ていないので、我々は、整数をクリックした場合
我々は、彼らがここに持っていることを他の任意の整数であることがわかります？
彼らは、整数、整数、整数すべてそうです。
一部の言語では、大きな整数型を持つ
今日我々がMySQL上で見たようなintやその後の大きなint型がありました。
クール。
>> だから、PHPマニュアル。
のは私たちの問題セットの仕様に戻って、我々は今、4ページをスクロールダウンしますみましょう。
これらの言語を取得するときに起こることの一つ
この静的型付けを持っていないので、宣言する必要があり、これらの言語
変数アップフロントのタイプ
あなたが異なる型の変数を持ち始める可能性がある場合には、例を入手され
互いに相互作用、
とPHPはそれが何をしようと、このことを行います
それを行うための最も賢明なことであると考えるもの
あなたが持っているときに2つの異なるタイプが互いに相互作用する。
例えば、私たちはここに、次のコード行を見れば
あなたは私たちが何が起こるか持っていることがわかり
我々は試してみて、整数2に文字列を追加するには1。
我々は数値ではない文字列を試してみて、追加した場合はどうなりますか
むしろ実際の文字は、CS番号50〜？
その後、我々はわかり起こる異なることはありますか
代わりに我々は数値を文字列に追加している文字列を数値に加える、
となどなど我々が取得している点に
我々は7 +真持って右ここに奇妙なもののいくつかの種類。
それは一体何を意味するのでしょうか？
>> 君たちは先に行くとあなたのアプライアンスにこのコードの一部を貼り付けた場合。
あなたはそれdynamic.phpで保つことができます。
我々は何が起こるかわかります。
[学生]ジャストプリントではなく、printf関数を使うのか？
ええ、そう、そのプリントを見つけることができますまた、PHPで印刷するための有効な機能です。
それを行うのは、多くの異なる方法があります。
我々は、後で私たちが話し始めると、上のいくつかの例で表示されます
我々は書き込むしようとしているユニークな問題について
我々は書こうとしていること、その後の濃度の問題
私たちは、fopenとfcloseを持っているにもかかわらず
それは、多くの場合、ファイルの内容を読み取るための最も簡単な方法はありません。
PHPはこれらのCライクholdoversをたくさん持っている。
[学生]私は私が唯一の出力として1番号を取得するものの全6に置く。
[ネイトH.]あなたはこれらの事のすべて6に置く。
それはだから、それで見てみましょう可能性の
一つのことは、これらの印刷コールは新しい行で終わりで終端されていないことです。
これらのプリントコールのそれぞれを分離する新たなラインは、ありません
ので、多分あなたは、1大量に取得している
そしてそれは実際に改行文字だけのアマルガムです。
[学生]はさて、私はどのように作るかを確認し、
さて、さまざまな方法の束があります。
手動で、改行文字のプリントに入れることができます
改行文字のエコー、
新しいラインのプリント。
[学生]だからエコーはprintfと同じものですか？
>> printfはC言語のprintfのようなものです
どこでフォーマットされた文字列を印刷している。
あなたはそれをフォーマット文字列と、すべてのプレースホルダ変数を供給している。
それは頻繁に使用されていません - 何か
、免責事項として、見てみましょう
私は他のWeb言語と私よりも私は、PHPにあまり精通しています、
と私はPHPでプログラミングしていたとき、私は一般的にprintfを使用しないでください
私はそれは速く、それが持っている文字列の補間機能を使用するために見つけるため、
我々は入るだろうと私は、ちょうど2番目にあなたが表示されますどの
C言語でのに対し、我々は同じ種類ではそれが正しく出力するために得るために、このハックのことを行う必要があります。
あなたが実際にPHPで文字列に直接変数を置くことができます。
printfは、私は通常、何のために過度に長いの一種である。はい、エラ。
[エラ]は一般的にはパースエラーを得れば、それは意味ない -
間違いがあると、それが何であるかを正確にここで、C上のようにそれは、あなたを教えてくれない
あなたの全体のコードに目を通すわけで、それを把握するようにしていますか？
これは、通常に比べて、よりター​​ゲットを絞ったのです。
私は、その場合には、それは少しオフだったと思う
ので、私はそのような場合に我々はセミコロンを欠いていたと思います。
それは、すべての意味を理解しようとしていた
ので、これらのインタプリタ言語のように、インタプリタは試してみるつもりさ
かつ適切にすべての作業を作るために最善を尽くす。
>> アドレスを確認するにはJavaScriptにおいては、例えば、表示されます
でお知らせします頻繁に行の文はPHPの場合と同様に、セミコロンで終わり、
彼らはCのそれと同じように、
JavaScriptでJavaScriptインタプリタの一部
多くのブラウザにあなたのためにセミコロンを入れます
あなたはそれらが欠けているために起こる場合。
彼らは試してみて、あなたの一部にいくつかのだらしなさに適応します。
すなわち、それはしようとしようと物事を動作させるためにしようとするかもしれないところです
そして最後に、それは、それは大丈夫と言う点が表示されることでしょう。
私は物事が救済に動作させることはできませんし、行番号を買ってあげるところです
その正確な場所から少しオフに思われるかもしれません。
さて、それでは、本当にすぐにこれを介して行くことができます。
我々は、エラでオフに左、それでは、ミッシーに渡って行こう
ミッシーとは、文字列1の印刷を加えた数は、2あなたに何を与えるのですか？
[ミッシー] 3。>> 3。
お分かりでしょうか？の並べ替え？
それはあなたの番号を与えるか？それはあなたの文字列を与えるのですか？
[ミッシー]数。>>それは数だ。
しかし、それを印刷しているので、それはあなたの文字列のいくつかの並べ替えを与えるために起こっている。
>> 我々はこれをチェックするために行うことができることの一つ
である我々はありません場合は、$ VAR = 1 + 2
それから私達は、GetTypeメソッドのエコーを言う
ので、ここでは印刷の第3種を使用しています。
今、私たちはここで何が起こるかを見ることができます。
ここで私たちが持っている、我々はこれの整数を降りています。
我々は、数に文字列を追加したにもかかわらず、
我々は、ミッシーが言ったように、それから文字列を取得できませんでした。
我々は、整数を得ていた。
わかりましたので、次のアップ、ケビン、見てみましょう。
CS + 50？>> [ケビン] 50。
[ネイトH.] 50。お分かりでしょうか？
[ケビン]うん。
[ネイトH.]なぜ？なぜそれがあなたに意味をなさないのでしょうか？
[ケビン]それだけで数値のゼロを有する文字列を持っているので。
うん、素晴らしい。
あいまいな状況のようなもの、それは何が起こるかを知って良いことだ。
1番+文字列2で次に何が起こるかステラ、？
[ステラ] 3。もう一度>> 3。
そして、この場合には、我々は文字列または数値を取得するのですか？
>> これを試してみましょう。
私は答えを得るよりも速く誰？シャーロット？
ああ、私はdidn't-大丈夫、見てみましょう、我々は同じようなことをやろうとしている
ここで、我々は数と文字列を持っている、と我々は、型をエコーするつもりだ
我々は何を得るを参照してください。
また、整数を取得します。
それは1つ1つが数字である文字列、ある問題ではありません。
我々はまだ、整数を取得するつもりだ。
それはまだ我々が期待するかもしれない何になるだろう。
すべての権利なので、サム、壁にはビールの何約90 +9ボトル？
[サム] 99。>> 99。
壁にはビールの瓶ませんけど。
それは私達に何が起こっているのかについて、もう少し情報を提供します。
[サム]は文字で9を書いていた場合
その後、あなたは右、90を持っているでしょうか？
[ネイトH.]うん。
我々は、N-I-N-Eと9書き出さたい場合質問があった
我々は、99または90を頂いておりますでしょうか？
我々は90を得ると思います。
それは文字通り桁の文字を探しています。
これは、数字の単語やその原料を認識できるほど賢くはありません。はい。
>> [学生]はPHPの型キャストのようなものですか？
あり、それは正確にあなたがC言語でそれを行うだろう方法だ
10月7日はどうでしょう、シャーロット？
[シャルロット] 1.4285。
[ネイトH.]うん、これについての驚くべきかもしれないので、何？
Cでのことを、この同じソートをやったらどうなるだろう、
あなたは、Cで10月7日をやった場合はどうなりますか？
[シャルロット]それだけでは、私が推測する型変換方法に応じて、あなた - を与えるだろう
それはあなたの小数点以下の桁数が限らを与えるだろう。
うん、小数点以下の桁数が限られそう。
他に何があるでしょう - それは、小数点の後に使用すると、任意の数字を与えるかもしれない？
頻繁にしないので、もう一度、あなたがそれを型キャストしている方法に応じて、
それは、または浮動小数点数に変換してもしなくてもよい。
ここではそれがなかったことは素晴らしいことのようなものだった。
我々は、C内のもの、この種の仕事を始めたとき、我々はあなたにこのバックを見せていた
それはおそらく、もう少し意味を成していただろう
それはちょうど1になりませんので。
そして最後に、ジェイミー、何+約7本当ですか？
[ジェイミー] 8。>> 8。
どういう意味ですか？
私はそれだけで1の値を真与えると思います。
うん。我々はfalseにそれを変更するとどうなりますか？
[学生] 7。
ええ、そう、我々はこれらのバイナリ値の話をどこで覚えている
上にある1、0はオフであること？
今、私たちは真が1であり、0は偽である
そしてあなたは、我々は、この過去の学期をやったことC言語の例でこれを見ていない可能性があります
しかし歴史的にC言語のbool型は、実数型ではなかった
ので、人々は、trueおよびfalseの代わりに0と1を使用している。
これは、その現れである。
>> さて、このすべてについて一つの重要な部分
我々はこれらの異なるタイプを持っているということです。
彼らはお互いに対話することができます。
彼らはしばしば、我々はここで見てきたように、素敵な方法で相互にやり取りすることができます。
それは、文字列1とナンバー2を持って、それらを一緒に追加して、3を得ることができてうれしいです。
それは理にかなっています。
ただし、ウェブサイトを書いているときに、特にするときに処理してい
ので、あなたがWebフォームを書いたユーザー入力を言う
ユーザーから情報を収集し、それを処理するために行くこと
バックエンドでは、PHPコード内で、サーバ側で
あなたは、ユーザが入力したと提出し、その値を期待している場合
フォームに整数になるように、浮動小数点数またはそのような何かであること
それを明示的にキャストする必要があります
その後いくつかの型チェックを行う。
>> あなたは、物事がうまくいくようにするには、この型の相互変換システムに依存したくない
特にセキュリティ上の理由から、ちょうどあなたのウェブサイトのための堅牢性。
フォームデータを処理しているときはいつでも心に留めておくだけで何か、
POSTまたはGETスーパーグローバルで来る何
あなたは常にそれを検証し、それを変換し、それを型キャストしていることを確認してください。
そして、我々はその前に型キャスト瞬間について話していただけのように
括弧を持っているところPHPで正確にC言語の場合と同じです
と入力します。
ということを忘れないでください。
あなたがこれをやっているときに便利になるだろう一つの機能
我々は、使用したとしてきたこのような種類のものですさておき、
我々はここに、このGetType関数を使用してきた
変数の型を把握するために、
これは、デバッグ用に便利で、変数の型が何であるかを確認しながら
あなたは、条件どこで、例えば、これを使用したくない
あなたは$ VAR =整数のGetTypeが何かをどうかを確認しています。
これは、悪い悪い、悪いです。
代わりにそこに呼ばれるこれらの関数は整数であり、文字列である
あなたが代わりに使用する配列は、このケースではそうです
私はここにこの男の代わりにしたいと思うものを
整数varは使用されています。
そして、彼らはしばしば言及している、あなたは整数で*を置き換えることができているという意味でのis_ *である
文字列、とcetera、と本当に速いことを確認する
これはint型のphpです。
あなたがすることができるように見えるどちらint型であるか、または同様に整数があるのですか？
はい、エイリアスなので、int型整数のエイリアス。
クール。
>> どうやってやっている？
のはペースを少し拾ってみましょう。
今、私たちは、あなたが見ることができるように、配列について説明するつもりだ
仕様の次の部分で我々は、PHPでどのように配列の話
彼らはCであるよりは若干異なります
真実では、彼らはのアマルガムのようなものだ
あなたがC言語で知っていると愛に来ている配列
すべてが同じタイプである場合
メモリ内に連続して連続して格納され、
そしてあなたは、これらの数値インデックスを持っています。
あなたはインデックス0、インデックス1、インデックス2を持っている
そしてあなたは、インデックスに値を格納します。
あなたはスペルを書いたCは、あなた方の多くにおいても
ハッシュテーブルへのアプローチを行なったし、あなたは私たちがそこにいたことを見た
我々がマッピングされたストレージの異なる種類
値へのキーなので、ハッシュテーブルに何かを格納しようとしたとき
あなたは、あなたが特定のキーを使用して格納したいことを指定する必要がありました
そのキーは、値の場所で、それが格納されますを決定した。
あなたは同じ種類では、PHPの配列で同時に起こって、これらの概念の両方を持っている
その結果として、私たちはしばしばこれらの連想配列を呼び出す
ここで我々は、値にキーを関連付けている。
この次の部分では、単純なPHPの配列の話
私たちは、a、b、cを、キーを持ってどこに
すべての文字列、整数1、2、3へのマッピング。
そして、あなたはさまざまな種類のキーを持つことができます。
>> あなたは、文字列、整数であるいくつかのキーとなるいくつかのキーを持つことができます。
あなたは、異なる型の値を持つことができます。
あなたは、文字列の値は、整数の値を持つことができ、
オブジェクトまたは別の配列の値は、例えば、
奇妙なの一種で、同じ配列オブジェクト内のすべての。
あなたはそれで要素のいずれかのタイプを持っている配列を持っている必要はありません。
あなたは、多くの異なるものが存在する中で起こっていることができます。
注意すべき他の事は、コード内でこのような何かを行うときに参照してくださいということです
これは、ちょうどこのような配列は、0、1、2、3、4、5を宣言するためには、有効なPHPです
それは、この配列であるように初期化$ arrを宣言します。
しかし、あなたが実際にボンネットの下に取得しているために、暗黙的なこの種のである
3から2に、我々は1から0、1から0を持っている鍵の生成、2、3。
そして、それはあなたがここにこの男のような配列を持っている場合でも、ことが判明
あなたはキーとしてa、b、cを持っている場所
そして、あなたは、スタックのように、この配列を使用して起動するには、アレイのpushメソッドを使用して起動する
ので、この配列オブジェクトは、この配列は本当に過負荷状態になっていると見ることができます。
我々は、配列として使用することができます。我々はハッシュテーブルとして使用することができます。
我々は、スタックとして使用することができます。
あなたは、この配列に物事をプッシュ起動すると
あなたがこの上にプッシュする最初の事はインデックス0、次にインデックス1、インデックス2になります。
あなたは、キーの暗黙の世代のこの種を取得することができます
それらを明示的に指定しない限り。
明示的にキーを指定する方法は、もちろん、この括弧記法を使用することです
配列に似除くだけではなく、可能である
ここで整数のインデックスは、今、私たちは何を可能にします。
あなたのキーは文字列にしたい場合は、このようにそれを指定すると思います。
あなたはそれがint型になりたい場合は、使用したいint型でそれを指定します。
>> その今までのところで質問がありますか？
このアイデアの素晴らしい点の一つ
あなたは今まで特定のキーで格納された複数の値を持つことができるということです。
私達が私達の上に戻ってしまったら、私はこのようなもののいくつかを削除するアプライアンスベースましょう。
とLet 'sは、私が行って、0、1、2、なるように配列を初期化すると言います。
私が今知っている場合とは、例えば、私は$ arrが[0]エコー場合
私は、値0は、プリントアウトするつもりだ
としか特定のキーに格納されている一つの値が存在することができるので
私は$ arrがで[0]を、と言う、何かを格納する場合
私は$ arrをエコーし​​たとき、私はもう一度[0]知ってい​​る
私は以前と同じようにプリントアウト0を取得するつもりはない。
私は取得するつもりです。
だから、これは基本的に私は$ arrが[0]に格納する2つの異なる値を持つことができないと言っている。
それは、このように文字通り置き換え0と文字列の両方を格納することはできません
$ arrが何であった[0]以前に。
私がこれを持って来る理由は、それを実行すると、何が起こるかを参照してください。
I 0は、プリントアウトしてから、ダウンしてここに来たことを、ここを参照してください。
そこに私は怠け者だったので、全く新しいラインはありませんし、そのインチ入れていない
これは何についてのクールなのは、我々は方法としてこれを使用することができます
セットのこのアイデアをキャプチャする
ここで我々は、配列内の複数のキーを持つことはできません。
私たちは、アレイ内で同一のキーを持つことはできません。
私は、キー0と値1と0キーと値を持つことはできません
trueまたは0キーと値。
キーはすべて存在する配列内の1つだけのキーです。
あなたは、格納された値と同じ値を持つことができるにもかかわらず、
別のキーの下に、アレイ内の複数回
それはあなたのPHPの配列に同一のキーを複数回指定することはできません。
>> 我々は、この次の問題を見れば、unique.php、
我々は、PHPファイルを開きたい場所
文字列のリストで、1行に1つの文字列を含む
そして我々は、そのファイル内のユニークなすべての文字列を検索したい
我々がしなければならないすべては、これらのPHPの配列のいずれかを使用している
そしてこの配列にキーとしてファイル内の文字列を使用し
我々はこれらの新しい鍵を保管としての配列を更新し続ける。
我々はファイルの各行を読み出したとして、我々は、配列に格納することができます
と最後に我々は我々の配列にキーとして持ちます
ファイル内で一意の文字列のすべて。
お分かりでしょうか？
これがどのように機能するかを見てみましょう。
我々は、仕様によると、unique.phpという新しいファイルを開くしようとしている。
開きます。おっと、申し訳ありませんが、新しいファイルを作成します。
我々は、同じ開始タグと終了タグでそれをオフに開始するつもりだ。
私たちはセクション9でそれを保存しようとしている、と我々はそれunique.php呼ぶつもりです。
さて、ズームイン
ここでの考え方は、ファイルを開いている
ファイルを1行ずつ読んで。
ファイル内の各行の
我々が持っているところは、配列があるでしょう
当社の主要な行。
そして、我々はここで終わりに到達したとき
$ arrののキーは一意の行です
ファイルから、我々は知っているので、私は、この配列に行を置く場合
複数回はそれだけで、古い値を上書きし続ける
それ自体はただ好きなように、私たちは実際には配列の行を置くことができます。
>> これはおかしいの一種である。
私たちは、何度も何度も何度も同じキーと値のペアを格納している
しかし、我々は、ラインと呼ばれる1つだけのキーが存在することが保証されているので、
我々は言うファイル動物の音のファイルを持っており、それは横糸、横糸を持っていますので、もし
ニャー、ニャー、MOO、MOO、と私たちは動物のノイズを読むたびに、
横糸と私たちのように我々は二度目次に横糸を取得し、我々の配列に格納
我々はそれが我々がそれを保管したことを初めて上書きされ横糸を格納します。
最終的に我々は、配列内の1つのエントリを持っています
我々の動物の音ファイル内の動物の音のそれぞれのため。
君たちは、PHPでファイルのオープンに取り組むことができると確信していますか？
行う一つの方法は、それをみましょうそれを行うには、この迅速に片道上に行く
さきほど見たように、fopenである。
あなたは、fopenはsome_file.txtすることができます。
あなただけのCのように、読み取りモードで開くことができます
それはそれを行うには1完全には良い方法だ。
ファイルを1行ずつ読み取るためにその後も
あなたがC言語でやった彼らの多くは同じ機能を持っている
あなたは、fgetsを持っています。
我々はそれを使用して好きではないけれども、あなたは、feofを持っている
覚えている、なぜなら、それはC言語で素晴らしいではありませんでした
あなたはそれを同じように行うことができますが、
しかし、ここは本当にクールなことです。
申し訳ありませんが、私はファイル$を行うにはしたくないが、PHPでファイルと呼ばれる機能があります
それは全体の内容を読み取るため、この関数は右ここにクールだ
あなたがそうsome_file.txt、指定したファイルの、
配列には、このファイルの内容全体を読み取る
してから、かなり気の利いたである、それを反復することができます。
>> 私達は私達のウェブブラウザには、例えば、行く場合
そして我々は、PHPファイルをGoogleで調べる
あなたは、このマニュアルでは、そのファイルが配列にファイル全体を読み込んで言うことがわかります
そして我々は、ファイルの内容を文字列として返すにはfile_get_contentsできます
が、通常は単に配列として取得すると、それが何のために本当にいいです
それはとてもそれを壊していること、各要素
アレイでは、ファイルの1行である
我々はファイル0を見れそうだとすれば、それはファイルの最初の行です。
ファイル1、二行目、ファイル2、第3ラインなどなど。
それはあなたがC言語でなければならなかったすべてだった場合、それはいいと思いませんか？
かなり気の利いた。
ダビデは講演でこれを示し、彼が示したイディオムがあった
ループ内でのPHPのための私達の標準に加えて、我々は持っていたこと
ため（$ i = 0のI <10; i + +）の、
そしてあなたも、PHPでこれを行うことができ、同じ事 -
我々はまた、foreachのと呼ばれるこのクールな構造を持っています。
配列や、これらのデータ構造の繰り返し処理を行う場合、foreachは本当に便利です
それはあなたが、配列の各要素を引き出すことができるため
手動でインデックス作成を自分で行うことなく、
手動でインデックス変数を作成しなくても、それをインクリメントし、
それが行うには非常に一般的なものだから、その時点で配列の値を引き出します。
>> おそらくやったことは、Cをやっていた時代のトン
学期以上なので、このforeachで
我々は、このファイルの配列をループすることができ、
と構文は、私たちが今したいことを、この配列をループである
そして我々が行っている変数を格納するために使用するように指定
このforeachループのスコープ内にローカルにローカルで、この配列の要素は、
我々はそれを呼び出す行するつもりされています。
それは言葉だけのファイルだと、行にひとつの単語がある場合。
よく、本当にちょうどあなたがこの名前を付けるように我々はそれを言葉を呼び出すことができ、
あなたはそれを呼び出すようにしたいものは何でも、
その後ループの内側には、この変数の行であなたが好きなことを行うことができます。
それは配列の値を取得するのに十分ではありませんし、また、取得したい場合
それとともに、インデックスがindexの名前を指定することができます
値と同様、今度は2つの変数にアクセスすることができます。
あなたは$ iとラインを持っている
ここで、$ iは、配列内のインデックスであり、
と行は、ファイルから取得した行です。
たとえば、我々はこのようなファイルのエコーライン0を出力したい場合、
私達はちょうどこのようにそれを行うことができました "ライン$ファイルのiは、ラインドルです"
そしてここで我々はまた、いずれかのまだ見ていない何かである
私は完全にこの全体の％s％dがビジネスを飛ばした場所
我々は、C言語で対処しなければならなかったし、代わりに、私はまっすぐに行ってきたこと
私の列に並んで変数を書く。
>> これは、変数補間、文字列補間と呼ばれ
あなたの右の変数、PHPインタプリタを詰めているところ
それは二重引用符 - で始まる文字列を読んだときには十分にスマートです
しない単一引用符は、単一引用符で囲まれた文字列では、これを、行うことはできません
それは変数を探して通ってますが、二重引用符で囲まれた文字列とそれが読み込まれるので。
それは、彼らを追い詰めるのは、それが変数を見れば、それは変数の値を取る
それは文字列表現に変換することができた場合、文字列にそれを詰め込む、
これはかなり素晴らしいです。
さしあたり、すべての残りの部分をコメントアウトしてみましょう、
これを保存して、私たちが今できることは、私たちがファイルを開くことができますです
我々はsome_file.txt-ましょう新しいファイルを作成し呼び出すことができる
そして我々は、ちょうどすべてをテストするには、ここでナンセンス原料の束に置くことができる
私はトップでここまでやっているとして、それはsome_file.txt呼び出し、それを保存し、
私はズームアウトしている場合、今ちょうどすべてが同じになっているディレクトリを確認し
私はunique.phpと同じディレクトリにsome_file.txt持っているように見えます。
私はphpのunique.phpを実行した場合
それは私のファイルの各行を出力し、ラインが何であるかを見る？
>> それは右、かなり強力なのですか？
見て、それはファイルを開くためのコードの3行を取った。
さて、コードの4行。私は明らかに、今日は数えることができない。
しかし、実際に他の2つは、中括弧のコードだけ2興味深い行であったので、
しかしこれだけのコードで、我々はそれを反復処理し、ファイルを開くことができました
行番号と行自体を引き出し
そしてそれを印刷してください。
クールなもの。シャーロット。
[シャルロット]私は構文について質問があります。
だから、あなたが開いているファイルのすべての単一の行で情報をforeachの
してから、一つ一つのラインで物事をやりたいときには同じようにそれを行う
して値を関連付けます。
[ネイトH.]何が正しい行いをすることができますここで、質問があった
foreachは配列に関係しているので、foreachの構文
本当にforeachので、どのスペースがないことに気付く
それぞれのためとの間に、または何か。
彼らは、隣同士に右に行かなければならない
そして、次に、それは、配列に取り
そして、あなたは、そこにされなければならないことと呼ばれるこの他のキーワードを持ってい
その後の後には、いずれか一方の変数名を置くことができるように、
あなたは、配列の値を引き出すことになるだろう、その場合、
しないインデックス、または私達は下に書いたように、あなたがそれを行う場合
あなたは、キーと値を取得します。
値をキーにしたように、配列の配列またはペアのforeach要素を持っている
または単に値として。
あなたはキーを必要としない場合は、何が必要に応じて、
その後は値で行くことができます。
あなたが鍵をしたい場合は、あなたも一緒に行くことができます。
>> [シャルロット]私はまた、我々はiまたは行を宣言決して実現。
それはどのようにも、彼らが何であるかを知っていますか？
[ネイトH.]は宣言とはどういう意味ですか？
[シャルロット]我々は彼らに言われたことがない私は何かラインを意味します。
[ネイトH.]我々は、iまたは行が言葉で何を意味するか、コンピュータを言わなかったの -
[シャルロット]彼らはインデックスまたはそのすばらしいスタイル - していること
[ネイトH.]我々は、これは、インデックスまたはキーと値であることになっていることがそれを言わなかった
それは、PHPインタプリタだからです。
これは、宣言として機能し、大丈夫、鍵があることを行っていると言う
変数iは、iという変数に格納されていると呼ばれる。
値は、ラインと呼ばれる変数に格納しようとしている、
ので、これは、これらの変数の宣言として働く
と$ iが鍵であり、$行が値であると言います。
うん、エラ。
[エラ]キーを使って数値的に行われていない場合
それはどのようにそれがすべてを印刷するために何が起こっているのか順番を決めるのでしょうか？
それはちょうどそれがで入力の注文を希望されますか？
[ネイトH.]のは、それを試してみましょう。
、ARRと呼ばれる変数を作成してみましょう
そして我々は7に行くを行うことができます。
1、2、またはリンゴを0に別の配列に行くと言ってみましょう。
レッツは7が1になると言う、bは2に行く
と3は4になります。
我々は混ぜたいので、これはクレイジー探して例の一種である
あらゆる場所に文字列と整数。
この配列には、実際の順序はありません。
私が言いたいのは、我々は、キーのアルファベット順にすべてのものを注文することができます。
我々は、値のアルファベット順にすべてのものを注文することができます。
>> 我々がしようとするといくつかの文字列であることを考慮して可能性があり、いくつかは、int型のアール
そして我々は、試してみて、同じタイプにそれらすべてを変換し、何が起こるかを見ることができました
あるいは、我々は、我々はすでに、それらを入力した値でそれらを検討することもでき
ここで我々は第一、第二、第三に、この男で、この男は、この男を入れて
第四、エトセトラでこの男。
我々は、このコードを実行すると何が起こるか見てみましょう。
我々は、下にスクロールして、同じようなことを行う場合
そしてここには、新しい行をプリントアウトしていない。
それは値の新しい行を含めたファイルのものを読んだとき、
ここではそれがなかったのに対し、これらはそれは、きれいにプリントアウトされた理由
その結果、すべてが一緒にsmushedいる理由だ。
物事はいいように、その新しい行に追加してみましょう。
ので、ここでそれを再実行してみましょう、と
何が起こったのかを見てみましょう。
それは、我々は配列に入れている順序で、すべてをプリントアウト。
その意味で順序を保持しません。
>> ユニークアイテムのこの問題に話を戻すと
我々は、ファイルを反復処理できるようにしたいところ
そして我々はそれがsome_file.txtあげる、
そして我々はこのようにそれを反復するつもりだ。
我々は、我々はすべてを持ってしたいことを確認するために配列を使用したいと言っ
ユニークなそこのラインアウト、私たちは、本当に簡単に行うことができます
ただ我々はもちろん、ループの範囲外で宣言した配列に格納することにより、
そして我々は我々の配列のキーとしてファイルの行を使用した場合と言わ
我々は、重複行を入力した場合、我々は以前の値を上書きしていると思います。
これは、同じ配列が同一である2つのキーを持つことが、これまでは不可能です。
我々は、ちょうどそれを行うことができます。
我々は、右ここにこのecho文を取り除くでしょう。
ここに私達は私達の配列にファイルの行を保存している
自身をキーとして使用します。
なんてことはない、それは私たちも、このキーを必要としないことが判明した。
我々は、i変数は必要ありません。
この時点で我々は、別のforeachループを実行するとします。
そして我々はそれぞれのARRをループ処理していた
とライン今我々はエコーおっと場合、申し訳ありません。
我々は、カンマを使用することはできません。我々は、キーワードとしてこれを使用する必要があります。
我々が行をエコーする場合今、私たちは、ファイル内で一意の単語のすべてを取得する必要があります。
我々はsome_file.txtまで行けば、
としてみましょう、我々はリンゴ、バナナ、リンゴ、りんご、バナナを行うと言う
我々は、このファイル内の一意の単語のすべてをプリントアウトしている場合我々は唯一の取得する必要があります
リンゴとバナナがプリントアウトする。
我々はこれを保存する場合は、今ここで我々は、中にはズームインしてよ
PHP unique.php、およびTA-DA。
我々はファイルを正常にuniquedた。
>> あなたはそれをプリントアウトする前に、この問題の最後の部分では、この配列をソートすることを求めている
この単純な例では我々だけでやったので、
我々は、ファイルその意味でラッキーだった
我々は、リンゴとバナナとこの不自然な例をしました。
これは、すでにソートされていました。
しかし、単純なソート機能を使用してあなたは、かなり素晴らしいです配列を並べ替えることもできます。
私は本当に素早くについて皆さんとお話したかった最終的なもの
PHPは、この種のすべてが順調と良いということです、そして、それは便利なスーパーです
あなたは今までプログラムで少し、迅速な物事を行う必要がある場合、実行する方法を知っている。
たとえば、私が言うと、そのプログラムを記述する場合に必要な、
誰もが私はC言語でそれを行って、書き込みするつもりはないのセクションに置き
それは長いものになるだろう。
それは、関係するファイルがある場合は特に、痛みの種類になるだろう
君たちが見てきたように。
それはとても素敵だと右ここに、ちょうどこのくらいのコード付き
我々はファイルを介してリッピングすることができました、すべての一意の値を取り出す
し、それらをバックプリント。
>> しかし、あなたの割り当てについては、あなたのプロジェクトのために、
もしPHPでWebサイトを構築している場合は、電源ということである
我々は、この通訳を介して私たちのPHPファイルを実行している、
とインタプリタは、PHPタグ内のすべてのものを処理している
他のすべてはそのまま残して、その結果を吐き出す。
我々は、プログラムでHTMLを構築するためにこれを行うことができます。
今、私たちはスペックの最後の問題は、仕様に戻ってしまったら
濃度のこのアイデアについて話
と、ドロップダウンメニューを作成する
そのあなたがまたは、あなたの最終的なプロジェクトが何をしているかに応じて、何をしたいかもしれません
ユーザーはすべての可能な濃度のリストから選択することを可能にする
彼らの1濃度。
さて、これはこれを入力する痛みの種類です
そしてあなたが確認するために抱えている場合は特に、手動ですべてこれを行う必要が
あなたは適切な場所にあるすべての角括弧と右の場所にあるすべての引用符を持っていること、
ので、PHPでは、プログラムでこれを行うことができます、そしてあなたが本当に素早くこれを行うことができます。
>> これを行う方法を見てみましょう。
私たちは、新しいファイルを開くしようとしている。
私たちは、PHPのタグに置くつもりです。
我々はそれconcentrations.php呼び出していくつもりですが、
考えることは良いことの今、あなたはこれをやっている、一種
あなたのPHPとHTMLを混在さと一致するようにしようとしているとき
見つけ出すことです、大丈夫、私はプログラムで生成したい部分は何ですか？
私はプログラムで生成することができる部分は何ですか？
それはあなたのHTMLのすべてを行うことができるというのは本当です
PHPブロックの内側。
あなたは、文字列としてHTMLのすべてをエコーすることができます。
たとえば、私はPHPの内部でselectタグをやって起動したい場合
私はエコーを言うことができ、名前=濃度を選択すると言う
その後ダウンして、私は別のエコータグを及ぼす可能性があります下に
または別のエコーは、[閉じる]を選択しますと呼ばれる。
何これは文字通り何をしようとしているので、これはそれを行うための一つの方法です
それは、PHPインタプリタを介して実行されている場合、この文字列をプリントアウトされる
ので、結果はHTMLでしょう。
それが今であると私は、このファイルを保存した場合
と私はphp concentrations.phpを実行
私が得たものを見てみましょう。
私はこのオープンクローズselectタグを得た。
>> 私はこれを行うにあったと私は、このファイルに結果を保存した場合、
concentrations.htmlウェイトと言うには、lが他にフェールオーバてしまったように見えるサイド
私がここまで開いた場合今、あなたは私が有効なHTMLファイルを持って参照してくださいconcentrations.html。
奇妙なことだろうか？
我々は、HTMLを作成する有効なHTMLを作成するためにPHPを使用しています。
我々はそれをやっている方法は、我々だけでPHPのプリントを抱えている
我々はそれを印刷したいHTML。
これは、PHPのウェブサイトがどのように機能するか、文字通りです。
あなたは次のようにあなたを送信するWebサイトにアクセスすると
何か、何か、何かドットコムスラッシュindex.phpを
コンピュータは文字通りのindex.phpを呼んでいる、
PHPインタプリタを介して実行して、どのようなジャンクが出てくる
それは、ブラウザに送り返すとちょっと言って、ブラウザ、HTMLとしてこれを解釈している。
良いところは、常にエコー、エコー、エコー、エコーを書くことが苦痛になることができるということです
ので、あなたが書きたいのであれば、このように引用符で、すべてを囲む
あなたはこのようにそれを行うことができます自分で静的になるだろう、HTML、
、それを閉じて、外にそれを置く
その後ここにあなただけが知っていることPHPタグ内に置く
あなたは、プログラムで生成すると、このケースでは、それらのオプションタグです
それが生成する痛みです。
>> たとえば、我々は千optionタグを生成することができ
このような何かを行うことで、$ iが<1000、i + +は
とエコーオプション値= $-おっと、私はそれを行うことはできませんと言いました。
さて、のは試してみて、何が起こるか見てそれを与えることができます。
$ iとし、$ iを言って</オプション。
むしろそのオプションタグを入力する手間を千倍以上異なる
私は、プログラム、それを自動的に生成するPHPコードを使用しています。
気の利いた一種。うん。
私は、これは講義やチュートリアルのいずれかで言及されたことを覚えている
が、引用符の違いは、何ですか
通常のものと、これらの単一の事？
それは実際に私がお見せするつもりだったことをここに間違ってやったことを何かである。
単一引用符には、特殊文字を許可していない、
ため、単一引用符で囲まれた文字列の中ですべてのものが文字どおりに解釈されます。
私は\ n単一引用符の内側を持っていたと私は、例えば、これを保存した場合
そして今、私はここに行くと、それを実行し、
おっと、私はどこに行くのですか？
私は$を忘れてしまったのでああ、それは。
>> 私はアップ実際に開いている場合今、ここ、私たちは、それをファイルに入力するのを取り除くでしょう。
我々はそれを読んでみよう。
ここでは、私ではない、実際の新しい行のような文字列でこのリテラル\ nを持っていることがわかり
と同様に、代わりに、実際にこの変数の値を補間する
それは私に痛みの種類である$ i自身を与えた。
これを回避する方法は、二重引用符を使用することです
そしてあなたはそれが実際に意志を二重引用符を使用する場合
ここで適切に補間し、これらの変数のすべての値を
そしてまた、それが提供している新しいラインであることが、この\ nを認識
とされていません\ n。
あなたが持っているときに、単一のものを使用するといいです
次にあなたがする必要はありませんので、特殊文字として解釈されるかもしれない文字
常にそれらをエスケープする。
物事が厄介になると、多くの場合、私はそれを行う方法ができ、
物事を簡単にするように、つまり私が何かを持ってするつもりなら
HTMLの私のコードのように私は、単一引用符内の編集が含まれます
し、この連結演算子を使用
インチ変数を連結する
これはそれを行うための別の方法である
我々は、これは文字列である接続しようとしている点を持っている場所
これとこれとこれと、
そして今、私はこれらの二重引用符をエスケープする必要はありません。
私は脱出するために、この男を使用する必要はありません。
彼らは文字通り右ここに二重引用符と、この男のようにプリントアウトされます。
これは、すべてを一緒に混合する別の方法です。
>> [学生]はまた、GetTypeをエコーするとき全く引用符がありませんでした。
右ので、エコーでは括弧を必要としないという意味で特別なの一種です。
あなたは、二重引用符は、変数の周りに必ずマークしておく必要はありません
それのようにエコー$ iの回答を有効だし、それは文字列としてこれを解釈するために起こっている。
それは、キャストを行うために起こっているので、我々はこれを行うことができ、そしてそれはあまりにも有効だが、我々はそれを必要としない。
これはオプションとなっています。
今週の問題セットでのもののこの種の多くのために外を見る
あなたは、PHPとHTMLを混合し、一致している場所
我々は戻ってスクロールしている場合だけ、このように、今、我々はこれを実行する
我々はオプション値の全体の束を持っていることがわかります
それは単にプリントアウトしてしまった。
私達は私達のために本当に速く生成得たすべてはこのHTMLを持っています。
私は運動としてそれを残しておきます。
それは我々が以前行ったことを読んでファイルにたいへんよく似ている。
>> あなたは中古品プルダウンできることconcentrations.txtファイルがあります
そしてあなたは、私たちが以前行ったのと同じforeachのトリックを使用して、それを開くことができます
そしてあなただけのオプションとプラグをエコーする必要がありますforeach
適切な値は、適切なキーとインデックス、
そして、あなたは文字通り作成し、ドロップダウンを得る
プログラムでハーバード大学の種々の濃度の皆さんのために。
用意しておくと便利なこと。
この割り当ての設定のものがたくさんある。
あなたが行っていない場合、それは既に次の30分、時間を取る
今夜は間違いなく確かに、いくつかの時間
、問題セットの仕様を歩く
バーチャルホストは、ローカルホスト、すべてのものを設定で何が起こっているかを参照してください。
たった今指摘すべき点は、ということです
ほとんどの問題セットで我々はあなたのDropboxフォルダに入ってきた
その後問題セットのzipファイルをダウンロードし、それを解凍する。
この問題のためにあなたがしたくない設定。
このvhostsディレクトリに入りたい。
あなたは、バーチャルホストに移動して、その中にローカルホストのディレクトリに移動したいと思う
zipファイルをプルダウンしたいと思うところ、これは、ある
それを解凍して、出かけようとする。
あなたが密接に手順を実行する必要があります。
>> ご不明な点がございましたら、メールを送信し、オフィスアワーに来て、議論に投稿してください。
みんなありがとう。来週はクイズのレビュー·セッションを持っているつもりです。
あなたの最後の問題セットをお楽しみください。私はそれがすべて本当にうまくいくといい。
[CS50.TV]