[Powered by Google Translate] [PHP構文] [トミーM​​acWilliam] [ハーバード大学] 【これはCS50です。] [CS50.TV] このビデオでは、PHPを紹介 - 我々はCS50で使用することがあります言語の一つ Web開発に我々は移行するように。 PHPは、PHPハイパーテキストプロセッサの略 またはPHPハイパーテキストプロセッサハイパーテキストプロセッサ、 と私はそこに停止します。 PHPは、私は本当に素晴らしいと思う再帰​​的頭字語です。 それでは、書いてみましょう 'こんにちは世界' PHPで、 その私たちが知っていると好きになったことをC言語で 'こんにちは世界'よりも少し異なるものになります。 代わりのhello.cというファイルを作成するための、 我々はhello.phpを作成します。 我々のPHPコードの全ては<?PHPと?>の間に含まれます。 私たちは、配置されている任意のPHPコードをお持ちの場合 これらの区切り文字の外側に、それが実行されません。 我々は、これらのPHPブロックの多くを持つことができます 我々は、単一のPHPファイル内に必要として。 PHPでは、主な機能のための必要はありません。 その代わりに、我々のPHPコードは、それが我々のPHPファイルに現れる順序で実行されます。 CとPHPの両方がデータを出力する 'printfの'機能を持っています。 しかし、PHPで、我々は#standardIO.hのようなヘッダファイルをインクルードする必要はありません。 PHPで、我々は我々のコードをコンパイルすることはありませんからだ。 我々は、Cのコードを書いたときに我々のワークフローが開放される傾向にあった 一つ以上の。cまたは。hファイル、それらを変更し、それらをコンパイルし、 と結果のバイナリを実行している。 このプロセスの詳細については、コンパイラのビデオをチェックしてください。 よりむしろコンパイル - - 言語Cとは異なり、PHPは解釈されます。 PHPコードは、我々が書くことを意味します 、インタプリタと呼ばれる特殊なプログラムを介して実行されます これは、私たちのコードを実行するになります。 我々のPHPコードを実行するには、 我々は、その実行を処理するPHPインタプリタに沿い、それを紹介しています むしろマシンコードにコンパイルするより。 アクションで通訳を見てみましょう。 我々は、端末を開いて、PHPのコマンドを実行することになるでしょう 我々は実行したいPHPファイルへのパスが続く。 私たちは、 'PHP hello.php'、と言うでしょう。 そして、私たちはそこに行く。私たちのPHPプログラムの出力があります。 我々は、すべてで私たちのPHPファイルをコンパイルする必要はありませんでした。 PHPインタプリタ - その代わりに、我々は別のプログラムを持っていた - 我々が書いたソースコードを実行します。 PHPは、単にprintfのよりもはるかに多くを行うことができます。 いくつかのより複雑なPHPプログラムを書きましょう。 構文の構文 - ため、一方、他の、場合のように、スイッチ - PHPとCで同じです ただ、Cのように、これらの構成要素のそれぞれが、自分の体の境界を設定するために括弧を使用しています 、ちょうどCのように、すべての行に書く セミコロンで終了する必要があります; しかし、変数はPHPで少し異なる方法で処理されます。 まず、PHPのすべての変数はドル記号で始まる必要があります。 それは最初は少し奇妙なようだが、あなたがそれに慣れるでしょう。 第二に、PHPは緩く型付けされた言語です これは、明示的にリストする必要がないことを意味 あなたがそれを作成する変数の型。 C言語であなたが言う必要があるでしょうここでint型のX = 5; またはchar Y = 'A'; PHPで我々は、単に$ X = 5を言うことができる; と$ Y = 'A';。 同じことは、関数に適用されます。 むしろます。int f(){我々の関数の本体}を言うよりも、 PHPで私たちは、関数f(){我々の関数の本体}と言うつもりです。 我々は明示的に私たちの関数fの戻り値の型を指定する必要はありません。 PHPの関数は、同じ型を返す必要はありません 毎回、それらが実行される。 例えば、私たちはエラー時にFALSEを返す関数を書くことができます そして別のタイプ、それが成功した場合。 これはまた、私たちは、より汎用的な関数を書くことができます。 例えば、私たちは単一の追加機能を書くことができます 2整数が与えられている場合には、整数を返すことができます または2フロートが与えられた場合、フロート。 C言語では、我々はこれを行うには2つの独立した関数を記述する必要があると思います。 私たちは、昇給や文字列のポインタを使用するCの間は、 私たちは、PHPでポインタを使用することはできません。 その代わりに、配列と文字列の両方をPHP内の型に内蔵されています。 彼らは右の言語に組み込まれています。 PHPの配列を作成するには、我々は言うことができ、 $ =アレイ(1、2、3); またはより単純に$ = [1、2、3];。 私たちは、この配列のインデックスは、我々はCからに慣れているのと同じ構文を使用してすることができます 、我々は言うだろう最初の要素を取得するには$ [0];。 PHPはまた、連想配列のサポートが組み込まれている。 連想配列は、ちょうど我々はすでに見てきたハッシュテーブルのデータ構造のようなもの - 彼らは、値にキーをマッピングします。 のは、例を見てみましょう。 我々は$スタッフ、と言うことができます= ["インストラクター" => "デビッド"、 "TF" => "トミー"];。 インストラクターとTF - ここで、私は2つのキーを持つ連想配列を持っている。 二重矢印、または等しい - より大きい、 キーとそれに対応する値を分離するために使用される。 だから、$スタッフ["TF"]の値は、文字列 "トミー"です。 連想配列の値は - ずっと他の配列のように - 任意の型を使用できます。 例えば、私たちは言うことができ、$スタッフ= ["インストラクター" => "デビッド"、 "TFS" => ["トミー"、 "ロブ"]];。 今 'TFS'の値は配列です。 つまり、1つの連想配列内部の値が異なる種類がありますことを意味します。 PHPの配列はまた、固定長を持っていない 従って我々は、配列から要素を追加したり、削除することができます。 Let 'sは、我々は$のような単純な配列を持っていると言う= [1、2、3];。 この配列に新しい要素を追加するには、 我々は、と言うことができます$ A [] = 4;。 今や我々のアレイは、4つの要素から構成され - [1、2、3、4]。 、我々はC言語でこのような何かをしたい場合ことを思い出してください 我々は、全く新しい配列を割り当てる必要があるだろう そこに私たちの最初の配列の内容をコピーし、 その後私たちの新しい値に新しい配列の最後の要素を設定します。 これは、PHPの方がはるかに簡単です。 我々の配列は連想配列である場合、 我々は、単に要素を作成するために新しいキーを定義することができます それはまだ存在しない場合。 我々は我々の以前の配列を持っている場合 - $スタッフ - 私たちはスタッフの$を言うことができる["合計"] = 3; 今、私たちは、3の値を持つ新しいキーを持っている。 配列内の要素数を取得するには、 私たちは 'カウント'関数を使用することができます。 私たちが言う場合、($)カウント、、4の値を持つことになります。 PHPでは、我々は、二重引用符または単一引用符を使用して文字列を作成することができます ので、これらの変数の両方が文字列である。 s1が$ = "文字列"; $ s2を= '別の文字列';。 この二つの違いは何ですか? まあ、それは含めることはかなり一般的です 文字列の変数内部の値。 これを行う1つの方法は、PHPのドット演算子を使用することである を連結文字列。 我々はこのような何かを行うことができます - $ N = 5; $ S = 'nは' $ N。;。 ここに私たちの変数nは整数である。 しかし、我々は文字列とそれを連結するとき、 PHPは自動的​​に私たちのために文字列に変換します。 または我々は、単に文字列自体に変数を入れて二重引用符を使用することができます。 我々が言うことができ、$ sが= "nが$ nは";。 今$ sの値は 'nは5'になります。 我々は、代わりに単一引用符を使用する場合は、$ S =のように 'N $ nは'; sの値は次のようになります 'N $ nは';。 我々は、単一引用符を使用する場合、nの値は、置換されません 我々は、二重引用符を使用する場合、それは次のようになります。 我々は、文字列内の配列の値を含むように二重引用符を使用する場合は、 我々はこのように、配列の周りに中括弧を含める必要があります - $ S = "{$スタッフ['合計']}";。 今Cの小さな断片を見て、PHPにそれを翻訳してみましょう。 ここでは、文字列の文字を出力する関数を作成している、 1行に1つの文字。 PHPで同じことをしてみましょう。 まず、私たちはPHP区切り文字が必要になるでしょう。 我々は我々の関数を作成する場合、 我々は、その戻り値の型や引数の型を指定する必要はありません。 私たちのS変数は、ドル記号で始まる必要があります。 PHPのstrlenの関数では、私たちに文字列の長さを与えます ただCのstrlenのように私たちに文字列の長さを与えます。 しかし水面下では、これらの関数は、実際には少し異なっています 文字列は、PHPにビルトインタイプなので。 私たちの 'の'ループの構文は同じです。 PHPでは、我々はまた、文字列の文字にアクセスするには、配列表記を使用することができます。 我々は今、文字列の各文字をプリントアウトするには、印刷機能を使用することができます。 PHPの印刷機能を使用すると、私たちは、プレースホルダを心配する必要はありません - %dまたは%Cのような - 我々は文字列ではない変数をプリントアウトしたいとき。 代わりに、我々は単に、印刷機能に任意の型の変数を渡すことができます それは文字列に変換されて表示されます。 そして、それはそれだ!今 'PHP print.php'で私たちのファイルを実行してみましょう。 そして、我々は我々のC言語プログラムから見た出力があります。 PHPはまた、 'foreachの'ループと呼ばれる構築をサポートしています。 'foreachの'ループは、単に 'for'ループのようなものです しかし、それは物事をより読みやすくするために糖衣構文のビットを追加します。 ここでは、 '$配列'と呼ばれる新しい配列を作成しています。 今、私たちは、foreachの($数として$配列)を言うことができます そして我々は$番号をプリントアウトすることができます。 私たちは、このファイルを実行する - PHP foreach.php-我々は独自の行にそれぞれの番号を確認することができます。 我々は、Cのコードを書いたとき、それは多くの場合、別々のファイルに、コードを整理するのに有用であった。 PHPでは、私たちは同じことを行うことができます。 Let 'sは、我々はmath.phpというファイルのいくつかの機能を持っていると言う。 私は、calculator.phpように、別のPHPファイルでこれらの機能を使用したい場合 私はPHPののrequire_once()関数を使用することができます。 require_onceをちょうどの#includeのようなものです。 ファイルへのパスを与えられたとき、それは本質的に内容をコピーして貼り付けます そのファイルの現在のファイルに変換します。 require_onceをは、各ファイルが一度だけ現在のファイルに含まれていることを保証する そのあなたがお互いを必要とするPHPファイルの大規模なコレクションを持っている場合に役立ちます。 のは、例を見てみましょう。 ここでは、私は別のファイルで使用したい機能のコレクションを持っている。 のは、我々はそれらを使用する方法を見てみましょう。 3行目では、我々はmath.phpを必要としている。 '__DIR__'現在のディレクトリを表す特別な定数である math.phpとcalculator.php以来、同じディレクトリに配置されています。 我々はmath.phpを要求した後、我々は関数を使用することができます  ているかのように我々はcalculator.phpでそれらを定義した。 レッツ 'PHP calculator.php'でこれを実行してください。すばらしい! これは、PHPの構文に対する当社導入のために、それだ。 詳細を調べるには、PHP.netをチェックしてください。 PHPは、組み込み関数をたくさん持っているし、幸運にもそのドキュメントは本当に素晴らしいです。 私の名前はトミーであり、これはCS50です。 [CS50.TV] ·ブラケット、私が部屋から出てよ。畜生!これは、私がコードで大きな言葉を使う最後のビデオです。