【PHP】JavaScript学習経験がある人のためのPHP基礎知識まとめ
JavaScriptを触ったことがあるコーダーやフロントエンド開発者に向けて、
phpで一番最初に知っておくべき基礎知識をまとめました。
phpのタグ
phpは上のタグで囲みます。
VS Codeを使っている場合は、定型文(スニペット)としてPHPタグを登録しておくと毎回書かなくてもショートカットで呼び出せて便利になります。
定型文の登録方法は、VSCodeで独自の定型文(スニペット)を登録する方法を参考にしてみてください。
echoで画面に表示
<?php
echo 'hello<br>';
echo 'hello<br>';
echo 'hello';
?>
上のようにechoを使うことで画面に表示させることができます。
phpタグの外はhtmlとして認識される
phpの閉じタグのあとは、通常のhtmlとして認識されます。
<?php
echo 'hello<br>';
echo 'hello<br>';
echo 'hello';
?>
ここからはHTMLです。
上のように、すると「ここからはHTMLです。」の部分からhtmlとして認識されます。
ちなみに、上のように、phpの閉じタグとhtmlの間の改行がある場合、その開業はhtmlの半角スペースとしてとらえられてしまうため、
気をつけましょう。
phpファイルの場合は閉じタグの省略が可能
phpファイルに記述する場合は、phpの閉じタグは省略することができます。
上のように不要な半角スペースが入らないようにするためにも有効です。
<?php
echo 'hello<br>';
echo 'hello<br>';
echo 'hello';
phpのコメントアウトの方法
以下の3つの方法でコメントアウトできます。
<?php
// echo 'hi';
#echo 'hi';
/*
echo 'hi';
echo 'hi';
*/
?>
最後のスラッシュにアスタリスク/**/の文では、複数行コメントアウトできます。
変数の定義方法
<?php
$name = 'yamada';
echo $name;
?>
JavaScriptの場合、letやconstをつけて定義しますが、phpの場合は不要で$を先頭につけます。
phpでもconstを使う場面は、クラスのときに変数を定義する場合になりますので、通常は、先頭に$で定義します。
文字列の結合方法
<?php
$name = 'yamada';
echo 'Hi, ' . $name . '.';
// Hi, yamada.
?>
JavaScriptの場合は、プラスマーク+ですが、
phpの場合はピリオド(.)で結合することができます。
変数名の命名規則
phpの変数名の命名規則は2種類あります。
<?php
$family_name = 'yamada';
$familyName = 'yamada';
?>
単語が2つ以上つながった変数名の場合、
スネークケースかキャメルケースを使います。
上がスネークケースで、下がキャメルケースです。
どちらでも問題ないので、実際の仕事ではコーディングがあればそれに従います。
文字列の囲み方
<?php
$name = 'yamada';
echo 'Hi, ' . $name . '.';
echo "Hi, " . $name . ".";
?>
シングルクオテーションでもダブルクオーテーションでも文字列を囲うことができます。
シングルクオテーションとダブルクオーテーションの違い
ダブルクオーテーションは変数をその中に記述できる
この点ではJavaScriptと同じですが、
ダブルクオーテーションの場合、JavaScriptでいうところのテンプレートリテラル(“)と同じような効果を発揮させることができます。
テンプレートリテラルが曖昧な場合は、JavaScriptの基礎文法まとめを参考にしてみてください。
ダブルクオーテーションの場合、変数をその中に記述することができます。
文字列の途中で変数を入れたい場合は、変数を{}で囲みます。
<?php
$name = 'yamada';
echo 'Hi, ' . $name . '.'; //Hi, yamada.
echo '<br>';
echo "Hi, " . $name . "."; //Hi, yamada.
echo '<br>';
echo "Hi, $name."; //Hi, yamada.
echo '<br>';
echo "Hi, aaa{$name}aaa."; //Hi, aaayamadaaaa.
echo '<br>';
echo 'Hi, aaa{$name}aaa.'; //Hi, aaa{$name}aaa.
?>
ダブルクオーテーションはエスケープシーケンスを使える
エスケープシーケンスとは、バックスラッシュから始まる特殊な記号のことです。
改行を意味する\nとかです。
エスケープシーケンスの参考:https://www.php.net/manual/ja/regexp.reference.escape.php
使い分け方
文字列のみの場合は、シングルクオテーション、変数を入れる場合はダブルクオーテーションという分け方がシンプルです。
コーディング規約があればそれに沿うようにしましょう。
自己代入のやり方
自己代入演算子
自己代入とは、下のように変数自身に変数を代入して、足したり引いたりといった計算を行うことをいいます。
自己代入演算子はそれを簡略化した書き方ができるもので、JavaScriptとほぼ同じです。
<?php
$i = 0;
$k = 1;
$i = $i + $k; //自己代入
$i += $k; //自己代入演算子 $i = $i + $k;
$i -= $k; //自己代入演算子 $i = $i - $k;
?>
インクリメント演算子とは
<?php
$i++; // $i = $i + 1;
?>
こちらもJavaScriptと同じです。
データ型について
phpは、データを宣言した地点で、そのデータの型が決まります。
言い換えると、phpは動的型付け言語です。
データ型の確認方法(var_dump)
var_dumpを使うことでその変数の型を確認することができます。
データ型の種類
<?php
$num = 1;
var_dump($num); //int(1)
$string = 'bye';
var_dump($num); //string(3)"bye"
$bool = false;
var_dump($bool); //bool(false)
intはinteger、つまり整数値の1という意味です。
stringは文字列のことです。
boolはbooleanのことで真偽値のことです。
PHPの場合は、true/falseは大文字のTRUE/FALSEでもOKです。
よく使うものは上のデータ型ですが、他にもあるので、公式のphpの型を参考にしてみてください。
型の自動変換に要注意
phpはJavaScriptと同じく動的型付け言語のため、足したり結合したりする際にデータ型の中身には気を配る必要があります。
<?php
$num = 3;
$bool = true;
echo $num + $bool; //bool(true) 4
上のように真偽値と整数値でもどちらかに合わせて計算できてしまうためです。
上の場合は、trueは1として処理されています。
明示的に型を指定する(型宣言)
<?php
$num = 3;
$bool = true;
echo $num + (int)$bool; //bool(true) 4
上の場合は、真偽値を明示的に整数値integerの型にしています。これをキャストするといいます。
他にも以下のようにしてキャストすることができます。
- (int) or (integer): 整数へのキャスト
- (float) or (double) or (real): floatへのキャスト
- (string): 文字列へのキャスト
- (array): 配列へのキャスト
- (object): オブジェクトへのキャスト
条件分岐の書き方
<?php
$value = 2;
// 普通のphpのif文の書き方
if ($value > 2) {
echo "2より大きい";
} else {
echo "2以下";
}
// もうひとつのif文の書き方
if ($value > 2):
echo "2より大きい";
else:
echo "2以下";
endif;
elseifはelse ifと空白が合ってもphpの場合は問題なく動きます。
その他の例えば、小なりや大なりなどの意味や、&&(and条件)や||(or条件)、==や===、!(否定の論理演算子)などはJavaScriptと同じです。
falseな値について
falsyな値についてもJavaScriptとほぼ同じです。
- “"(空文字)
- NULL
- 0(数値、文字列)
- FALSE
上記はfalsyな値として認識されます。
phpは文字列の「0」もfalsyな値として認識される点に注意しましょう。