PHPはインタプリター型の言語で、書いたコードをそのまま実行します。
PHPのコードファイルはテキストファイルで、PHPコードの開始を示す開始タグ<?phpを含みます。
ファイルにPHPコードしか含まれていない場合は、PHPコードの終了を示す終了タグ?>を省略できます。
PHPタグについて詳しくは、PHPタグのドキュメントを参照してください。
<?php
// All PHP code goes here
// No closing tag required at the end
読みやすさのために、すべてのコード例では開始タグ<?phpを省略しています。
ただし、PHPの演習にはすべて含まれているので、自分で追加する必要はありません。
代入や関数呼び出しなど、すべての文は命令を区切るために;で終わる必要があります。
(JavaScriptのように);を省略することはできず、構文エラーになります。
命令の区切りについて詳しくは、PHPのドキュメントの命令の区切りを参照してください。
$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]
PHPは動的型付けのプログラミング言語です。
値の型がチェックされるのは、プログラムの実行中だけです。
代入演算子=を使えば、どんな型の値でもどんな変数名にも代入できます。
変数名はドル記号$で始まる必要があります。
変数についてさらに詳しく知りたい場合は、PHPの変数のドキュメントを参照してください。
$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable
$count = false; // You may assign any value type
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
リテラル値や変数に格納された値は、関数に渡すことができます。 関数の引数を定義すると、渡された値を保持するための新しい変数が作られます。
// Declare the window_width function
function window_width($width)
{
echo $width; // Access the value passed into the function as $width
// ...
}
window_width(100); // Call the function with the literal value 100
$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth
関数は、キーワードreturnを使って値を返すことができます。
返す値は、リテラル、変数に格納された値、または命令の結果です。
function window_height()
{
$heightOffset = 10;
return 100 + $heightOffset;
}
クラスの中にある関数と、そのインスタンスの関数は、メソッドと呼ばれます。
メソッドを呼び出すには、名前にインスタンスと->を付けます。
クラスのインスタンスはnew演算で作成します。
メソッドは、現在のインスタンスを指す特別な変数$thisにアクセスできます。
<?php
// Calculator.php
class Calculator {
// ...
public function sub($x, $y)
{
return $this->add($x, -$y); // Calls the method add() of the current instance
}
public function add($x, $y)
{
return $x + $y;
}
}
$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2
関数とクラスについては、後の演習でさらに詳しく見ていきます。
基本的なデバッグの方法として、値や変数の内容を出力すると、何が起きているかを理解するのに役立ちます。 PHPでは、次の方法で値を出力できます。
echo $variable;で、値の文字列表現を出力しますprint $variable;は、echo $variable;と同じですvar_dump($variable);で、値についてより詳しい情報(PHPが見ている型など)を得られますechoやprintを使う場合、空文字列、false、nullは表示されません。
また、クラスやインスタンスを渡すとエラーになります。
これらを確認するにはvar_dump()を使います。
オンラインエディターでは、出力した内容がテスト結果と一緒に表示されます。 CLIを使っている場合は、テストの概要の前に表示される進行状況と混ざって出力が表示されます。
PHPや他の多くの言語では、ファイルがコードを構成する基本単位です。 コードブロックで見るべきファイルの名前を示すために、コメントを使います。 このようなコメントを自分のファイルに追加する必要はありません。
<?php
// NameOfPhpFile.php
[...]
コード、関数、クラスはすべて1つのファイルに書くことができます。 しかし、通常はこうしたコードの単位は別々のファイルに分けます。
1つのファイルに1つのクラスを置き、ファイル名をクラス名と一致させるのが一般的です。
<?php
// Calculator.php
class Calculator {
// ...
function add($x, $y)
{
return $x + $y;
}
}
関数は通常、共通のテーマを表すファイルにまとめます。
<?php
// window_handling.php
function window_paint()
{
// ...
}
function window_size($width, $height)
{
// ...
}
function window_move($x, $y)
{
// ...
}
また、直接実行する文を含むファイルもよくあります。たとえば、Webアプリケーションのエントリーポイントとしてよく使われるindex.phpです。
<?php
// index.php
$sum = add(1, 2);
// ...
クラス名はすべてPascalCaseにします。
スタイル標準にもよりますが、変数、関数、メソッドの名前はcamelCaseまたはsnake_caseのどちらでもかまいません。
名前には英字a-zA-Z、数字0-9、アンダースコア_を使えますが、数字で始めることはできません。
1行コメントは//で始まり、テキストのまとまりを/*と*/で囲むと複数行コメントになります。
// Single-line comment
/*
Multi-line comment
*/