[PHP] 文法をさらっと復習している途中

Nプログラマです。

PHPの文法をさらっと復習している途中です。
復習したところはメモしていきます。

それではどうぞ。

基本的なコード

<?php

echo("Hello!");

?>

開始タグと<?php)と終了タグ(?>)で囲み、その間にPHPのコードを書いていく。

終了タグは省略することも可能。

htmlで埋め込みとして使う場合は必ず開始と終了タグで囲む。

個人的には、基本的にPHPファイルであれば終了タグを省略する、というルールで作っています。

この記事では開始と終了タグ(<?php ?>)で書くようにします。

スクリプトの実行など

スクリプトを実行

\$ php sample.php

スクリプトの文法チェック

lオプションを使うことで指定したスクリプトの文法をチェックできる。

\$ php -l sample.php

結果

// 構文エラーがないとき
No syntax errors detected in sample.php
// 構文エラーがあるとき(例)
PHP Parse error: syntax error, unexpected エラー内容 in sample.php on line 3

コメントの書き方

一行コメント: 「//」

一行のコメントは、スラッシュを2個並べる。

<?php
// これはコメント
// echo "コメントなので実行されない";
?>

複数行のコメント: 「/**/」

複数行をコメントするには、/**/を使う。
実際に使うとこんな感じに。

<?php
/*
 複数行のコメント
 改行することもできる
 */
?>

コメント中に入れ子のコメントは書けないことに注意!

/* /* */ */ というようなコメント文は記述できないことに注意する。
複数行のコメントは「*/」が見つかったらそこで終わるので、構文エラーになる。

上の例で行くと/* /* */が複数行のコメントになり、*/は解釈できない部分になる。

出力する

出力する言語構造や関数など。

echo

関数っぽいけどそうじゃなくて言語構造。
htmlの中に埋め込みで使われているのは、こっちを見かけることが多い。

カンマで区切ると複数の文字列を渡すことができる。

コード

<?php

echo "Hello!";
echo "Hello", "World !";    // カンマ区切りで複数の文字列を渡すこともできる
echo("Hello!");  // 関数っぽく使える(関数ではない)
$msg = "Hello";
echo $msg;  // 変数の中身も表示できる

?>

結果

見やすいように改行してあります。

Hello!
HelloWorld !
Hello!
Hello

print

こちらもechoと同じで言語構造。
echoと違って、こちらは引数は1つだけを取り、常に1の結果を返す。

コード

print "Hello!";
print("Hello!");  // 関数っぽく使える(関数ではない)
$msg = "Hello";
print $msg;  // 変数の中身も表示できる

結果

見やすいように改行してあります。

Hello!
Hello!
Hello

備考

echoとprintは関数ではなく言語構造、という部分についてこちらの記事が参考になりました。
ありがとうございます。
> PHPのechoとprintは言語構造だというけど、言語構造とは何か

var_dump

デバッグをする時によく使う。

引数に渡した値の情報をダンプしてくれる。
配列やオブジェクトを渡すと、その中身を再帰的に表示してくれる。

可変長引数リストなので複数の値を渡すことができる。

引数を複数渡す

コード
var_dump(1, "20");
結果
int(1)
string(2) "20"

配列をダンプ

コード
$arr = [
    'name'  => 'nprog256',
    'color' => 'red',
];

var_dump($arr);
結果
array(2) {
["name"]=>
string(8) "nprog256"
["color"]=>
string(3) "red"
}

オブジェクトをダンプ

コード
class Sample
{
    public $name = 'name';
    public $color = 'red';
}

$cl = new Sample();
var_dump($cl);
結果
object(Sample)#5 (2) {
["name"]=>
string(4) "name"
["color"]=>
string(3) "red"
}

おわりに

色々と復習がてら追記していきます。

それでは、このへんで。
バイナリー!

参考

PHP: Hypertext Preprocessor
タイトルとURLをコピーしました