はじめに
Laravelを使ってみようと思ったが、そもそもPHPを使ったことがないので、基本構文から確認した。
慣れるまで毎回調べるのは面倒なため、メモしておく。
出力や文字列、計算等
出力
echo:文字列などを出力する。
文字列
文字列はシングルクォーテーション「’」かダブルクォーテーション「”」で囲む。
計算
算術演算子は他の言語と同じ感じで
足し算「+」、引き算「-」、掛け算「*」、割り算「/」、余り、「%」。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Title</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <?php // 文字列を出力 echo 'Hello, world!'; ?> <br> <?php // 計算 echo 5*3 ?> </body> </html>
文字列と数値での「+」の違い
<!-- 「4」が出力される --> <?php echo 1+3 ?> <br> <!--「 1 + 3」が出力される --> <?php echo '1 + 3' ?>
変数
頭に「$」記号をつけることによって変数を定義する。
$変数名 = 値;
文字列の連結
文字列の連結はドット「.」を使う。文字列同士の連結、変数と文字列の連結、変数同士の連結をすることができる。
また、「.=」で連結を省略できる。
<?php // 'こんにちは!あつぽて'と出力 $name = 'あつぽて'; echo 'こんにちは!'.$name; ?>
<?php // 'こんにちは!あつぽてと出力 $name = 'こんにちは!'; $name .= 'あつぽて'; echo $name; ?>
変数展開
ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられます(変数展開)。シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされます。
<?php // 'あつあつ!ぽてと'と出力 $name = 'ぽてと'; echo "あつあつ!{$name}; ?> <?php // シングルコーテーションだと'あつあつ!$name'と出力 $name = 'ぽてと'; echo 'あつあつ!${name}'; ?>
条件分岐
<?php
// $ageという変数に自分の年齢を代入してください
$age = 17;
if ($age >= 20){
echo "あなたは20歳以上です。";
} else{
echo "あなたは20歳未満です。";
}
?>
if文
if
条件分岐はよくある他の言語と同じでif文。
else
if(){}else{}で、「もしも〜だったら・・・、そうでなければ・・・」が実装できる。
elseif
elseifを用いることで、「もしも〜だったら・・・、それとも〜であれば・・・、いずれでもなければ・・・」といった多岐分岐が実装できる。もし複数の条件に合致した場合、最初に合致したブロックのみ実行される。
文末のセミコロンについて
条件分岐やループ処理などは、命令を実行する部分にのみ「;」をつける。
判定している行にはセミコロンをつけない。
比較演算子
演算子 | 記述例 | 意味 |
---|---|---|
== | a == b | bとaの値が等しい |
=== | a === b | bとaの値が等しく型も等しい |
!= | a != b | bとaの値が等しくない |
<> | a <> b | bとaの値が等しくない |
!== | a !== b | bとaの値または型が等しくない |
> | a > b | bよりaが大きい |
>= | a >= b | bよりaが大きいか等しい |
< | a < b | bよりaが小さい |
<= | a <= b | bよりaが小さいか等しい |
複数の条件式を組み合わせる
<?php $x = 1071; // 以下にif-elseif-else文を書いてください if ($x % 3 == 0 && $x % 7 == 0) { echo 'xは3の倍数かつ7の倍数です。'; } elseif ($x % 3 == 0) { echo 'xは3の倍数ですが7の倍数ではありません。'; } elseif ($x % 7 == 0) { echo 'xは7の倍数ですが3の倍数ではありません。'; } else { echo 'xは7の倍数でも3の倍数でもありません。'; } ?>
複数の条件を1つにまとめる際には論理演算子「&&」、「||」等を使用する。
&&(かつ):左右の式がともに「true」の場合、全体も「true」となる。
||(または):左右の式のどちらか、または両方が「true」の場合、全体も「true」となる。
「!」:条件の否定ができる。式が「真」であれば「偽」に、「偽」であれば「真」となる。
switch文
条件分岐にはif文の他にswitch分がある。if, elseifによる分岐が多く複雑な場合、switch文で書き換えるとシンプルで読みやすいコードにできる。switch(式)の(式)がcaseの値と一致したとき、そのブロックが実行され、caseのどれにも一致しなかった時、defaultのブロックが実行される。
break
caseブロックの最後にはbreakを記述する必要がある。breakがないと、後ろに続くcaseブロックが続けて実行されてしまう。
<?php
// 変数$numを定義し、好きな数字を代入してください
$num = 50;
// 変数$remainderを定義し、変数$numを3で割った時の余りを代入してください
$remainder = $num % 3;
// switch文を用いてください
switch ($remainder) {
case 0:
echo '大吉です。';
break;
case 1:
echo '中吉です。';
break;
case 2:
echo '小吉です。';
break;
default:
echo '凶です。';
break;
}
?>
配列
配列は「$配列名 = array(値1, 値2, ・・・);」と記述する。
配列のデータには先頭から「インデックス番号」が割り振られる。配列のデータを取り出すには「インデックス番号」を用いて $配列名[インデックス番号] という風に指定する。
※インデックス番号の最初は1ではなく0から始まるので注意。
<?php // この下に配列を作ってください $colors = array ('緑', '青', '黄'); //$colorsの最初の要素をechoしてください。 echo $colors[0]; //$colorsの末尾に白を追加し、$colorsの最後の要素をechoしてください。 $colors[] = '白'; echo $colors[3]; ?>
連想配列
連想配列も配列と同じく複数のデータをまとめて管理できる。配列との違いは、インデックス番号ではなく、「キー」で管理できる。 連想配列では「$配列名 = array(‘キー名’ => ‘値1’, ・・・);」といったように、「=>」を用いてキーと値をセットする。
連想配列の値を取り出すには、対応する「キー」を用いて 「配列名[キー] 」のように書く。
また「配列名[キー] = 値;」で、データを追加することができる。
<?php // この下に連想配列を作ってください $scores = array('数学' => 70, '英語' => 60, '国語' => 80); //$scoresの'国語'に6を足してください。 $scores['国語'] += 6; //$scoresの'国語'をechoしてください。 echo $scores['国語']; //連想配列の追加 $hoge = array('key1'=>'value1'); $hoge += array('key2'=>'value2'); ?>
繰り返し処理
for文
<?php // 1~100を繰り返し出力する for ($i = 1; $i <= 100; $i++) { echo $i; echo '<br>'; } ?>
while文
<?php $i = 1; // 1~100から偶数を繰り返し出力 while ($i <= 100) { if ($i % 2 == 0) { echo $i; echo '<br>'; } $i++; } ?>
break
breakはループを強制的に中断する。
<?php for ($i = 1; $i <= 1000; $i++) { if ($i > 500) { break; } echo $i; echo '<br>'; } ?>
continue
continue文は現在の周だけをスキップし、ループそのものは継続して実行しする。
<?php for ($i = 1; $i <= 1000; $i++) { if ($i % 3 == 0) { continue; } echo $i; echo '<br>'; } ?>
foreach
foreach文とは、配列または連想配列に対して、先頭のデータから順に繰り返し処理を行う。 配列のデータを1つずつ取り出して処理を行うことができる。
「as」の後ろの値変数に、ループの度にデータが先頭から順に代入されていく。値変数の変数名はなんでもOK。
foreach文では、配列内のデータが順次「キー変数」、「値変数」に代入され、それに対して処理が繰り返される。 「キー変数」には、配列のときはインデックス番号が、連想配列のときはキーが代入される。「キー変数」の部分は省略できる。
foreach(配列 as 値変数){ 繰り返したい処理; } foreach(配列 as キー変数 => 値変数){ 繰り返したい処理; }
<?php $scores = array('数学' => 70, '英語' => 90, '国語' => 80); foreach($scores as $score){ echo $score; } //出力結果 709080 ?>
<?php $scores = array('数学' => 70, '英語' => 90, '国語' => 80); // この下にforeach文を書いてください foreach ($scores as $key => $value) { echo $key.'は'.$value.'点です。'; } //出力結果 数学は70点です。英語は90点です。国語は80点です。 ?>
関数
組み込み関数
PHPの既存の関数は組み込み関数と呼ばれる。 例えば「strlen」は組み込み関数の1つで、文字列の文字数を返す。
echo strlen('PHP'); // 出力結果 3
$language = 'PHP'; echo strlen($language); // 出力結果 3
関数の作り方
関数を作るには「function 関数名(){ 処理 }」という書く。呼び出す際は「関数名()」。
引数
関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができる。この値を「引数」と呼ぶ。引数を関数内で使うには、それを受け取るための「仮引数」を、関数の定義時に指定しておく必要がある。仮引数が複数ある場合はカンマ(,)を用いる。
<?php // 関数hello function hello() { echo 'Hello, world!'; } // 関数helloを呼び出し hello();
戻り値
関数は値を「返す」ことができ、帰ってくる値を戻り値と呼ぶ。戻り値は「return」で指定する。
<?php // 関数getCircleArea function getCircleArea($radius) { return $radius * $radius * 3; } // 関数getCircleAreaを呼び出し、戻り値を変数$circleAreaに代入 $circleArea = getCircleArea(5); // $circleAreaをechoしてください echo $circleArea; ?>
全然覚えてはいないが、実際に使いながら慣れていく。
コメント