PHPプログラミングの基本構文リファレンス(備忘録)

最近学んだPHPの構文についての備忘録。

侍エンジニア塾での受講が本番を迎える前段階で独学で勉強中。

PHPはHTMLに埋め込める

<?php で始まって ?>の間にPHPの文を書く決まりになっている。
echoというのは表示せよ、という命令。命令文の最後は;(コロン)を付けると文の終端ということを意味して解釈してくれる。

<!DOCTYPE html>
<html lang="ja">
<body>
  <p>hello php! <?php echo "hello world!"; ?></p>
  <?php  echo "hello from the php echo<br>"; ?>
</body>
</html>

表示

PHPでの変数と定数の扱い方

変数名の先頭に$マークを付けると変数になる。=を用いて値の代入が出来るのは他の言語と同じ仕様。

変数名に型を書かずとも、自動的に判別してくれる。文字列を入れることもできるし、数値を代入することもできる。

<?php

//変数への代入
//文字列の代入
$msg = "ハローワールド!";
echo $msg;

echo "<br>";
//数字の代入
$num = 109;
echo $num;

//var_dumpを使うとデータ型を知ることができる
echo "<br>■var_dumpを使うとデータ型を知ることができる<br>";
var_dump($msg);

//定数 定数名は大文字を使う
echo "<br>■定数 定数名は大文字を使う<br>";
define("FUJISAN", "3776");
echo FUJISAN;


//自動的に定義される定数
echo "<br>■自動的に定義される定数<br>";
var_dump(__LINE__); echo "<br>";//行数
var_dump(__FILE__); echo "<br>";//ファイル名
var_dump(__DIR__); echo "<br>";// ディレクトリ名

?>

表示

PHPでの整数や小数点の演算、特別な演算子

//数値の演算
echo "<br>■演算<br>";
$x = 10 % 3; // あまり
$y = 30.2 / 4;
var_dump($x); echo "<br>";
var_dump($y); echo "<br>";

//単項演算子
echo "<br>■単項演算子++<br>";
$z = 5;
$z++;
var_dump($z);

echo "<br>■単項演算子--<br>";
$z--;
var_dump($z);


//変数と代入を伴う演算子
echo "<br>■変数と代入を伴う演算子<br>";
$x = 5;
$x += 2;
var_dump($x);

表示

文字列の扱い、"と’で囲った場合の違い


//文字列
// ""で囲った場合は特殊文字(\n, \t)や変数の展開ができる
// ''で囲った場合はすべて文字列として扱われる
echo "<br>■文字列の扱い方、ダブルクオーテーションとシングルクオーテーションの違い<br>";
$name = "pikachu";
$s1 = "hello $name!\nhello again!<br>";
$s2 = 'hello {$name}!\nhello again!<br>';
$s3 = 'hello ${name}!\nhello again!<br>';
$s4 = "hello {$name}!\nhello again!<br>";
$s5 = "hello ${name}!\nhello again!<br>";
echo $s1;
echo $s2;
echo $s3;
echo $s4;
echo $s5;


//文字列の連結
echo "<br>■文字列の連結<br>";
$s = "hello " . "world";
var_dump($s);

表示

PHPのif文を使った条件分岐

//if条件分岐
echo "<br>■if条件分岐<br>";
$score = rand(1,100); //ランダム関数で1~100の整数を返す
echo $score . " : ";
if ($score > 80) { //scoreが80より大きければGreatを表示
  echo "great!";
} elseif ($score > 60) {
  echo "good!";
} else {
  echo "so so";
}

表示

条件判定の演算子各種

条件を判定するための比較演算子には以下のものがある
==
=== 値とデータの型まで比較
!=
!==

論理演算子には以下のものがある
and &&, or ||, !

falseになるのには条件式の他に以下の値がある
文字列: 空、"0″
数値: 0、0.0
論理値:false
配列:要素の数が0
null

逆に変数に値が入っていればtrueになる。

echo "<br>■真になるケース<br>";
$x = 5;
if ($x) {
  echo "真";
} else {
  echo "偽";
}

echo "<br>■偽になるケース<br>";
$x = 0;
if ($x) {
  echo "真";
} else {
  echo "偽";
}

表示

三項演算子を使った条件式の書き方

//三項演算子
//真だったら$aを代入、 偽だったら$bを代入せよ、という命令
echo "<br>■三項演算子<br>";
$a = 10;
$b = 20;
$max = ($a > $b) ? $a : $b;
echo $max;

//同じ意味↓
echo "<br>■ifを使った書き方<br>";
if ($a > $b) {
  $max = $a;
} else {
  $max = $b;
}
echo $max;

表示

PHPのswitchを使った条件分岐

switch文はあらかじめ決められた値を持つときの場合分けとして使う。C言語と同じ。

各caseにおいてbreak;は必ず記述。またどの条件にも当てはまらないdefault:も記述すること。

//switch条件分岐
echo "<br>■switchを使った条件分岐<br>";
$signal = "yellow";
switch ($signal) {
  case "red":
    echo "赤";
    break;
  case "blue":
    echo "青";
    break;
  case "yellow":
    echo "黄色";
    break;
  default:
    echo "なし";
    break;
}

表示

PHPでのループ処理

ループ処理はwhileとfor文を使うことができる。条件式が真の間はループするような挙動になる。

do whileは先に一回だけ処理をしてから条件式の判定に入るので、普通のwhileと使い分けをすること。breakやcontinueもC言語に似てる。


//ループ処理
// while
echo "<br>■whileループ処理<br>";
$i = 0;
while ($i < 10) {
echo $i;
$i++;
}


// do ... while
echo "<br>■do whileループ処理<br>";
$i = 0;
do {
  echo $i;
  $i++;
} while($i < 10);


//forループ
echo "<br>■forループ処理<br>";
for ($i = 0; $i < 10; $i++){
  echo $i;
}


// breakはループを抜ける
echo "<br>■breakはループを抜ける<br>";
for ($i = 0; $i < 10; $i++){
  if ($i == 5) break;
  echo $i;
}


// continueは、次のループへ進む
echo "<br>■continueは、次のループへ進む<br>";
for ($i = 0; $i < 10; $i++){
  if ($i == 5) continue;
  echo $i;
}

&#91;/code&#93;

表示
<img src="https://pg-happy.jp/wp-content/uploads/2018/10/php-basic-07.png" alt="" width="600" height="300" class="alignnone size-full wp-image-2308" />


<h2>PHPでの配列の扱い方</h2>

配列の宣言の仕方や使い方はちょっとコツが必要。C言語とは異なり、キーとバリューがあることから連想配列や辞書型のような使い方となる。


//配列の宣言の仕方その1
echo "<br>■配列の宣言の仕方<br>";

//キーと値で構成する
echo "<br>■その1キーと値で構成する<br>";
$tel = array(
  "tokyo" => "03",
  "saitama" => "04",
  "chiba" => "05",
);

var_dump($tel);
echo "<br>";
var_dump($tel["tokyo"]);
echo "<br>";
echo $tel["saitama"];
echo "<br>";

//配列の宣言の仕方その2
//array()を使わずに[]を使ってもよい
echo "<br>■array()を使わずに[]を使ってもよい<br>";
$zaiko = [
  "apple" => 200,
  "orange" => 300,
  "pine" =>50,
];

var_dump($zaiko);
echo "<br>";

//配列に値を追加する
echo "<br>■配列にキーと値を追加する<br>";
$zaiko["grape"] = 33;

var_dump($zaiko);
echo "<br>";

//配列への代入
echo "<br>■配列への代入<br>";
$zaiko["orange"] = 100;
var_dump($zaiko);
echo "<br>";


//キー無しで配列を作ると添字0, 1, 2...で指定できる
echo "<br>■キー無しで配列を作ると添字0, 1, 2...で指定できる<br>";
$colors = ["red", "blue", "pink"];
echo $colors[0];echo "<br>";
echo $colors[1];echo "<br>";
echo $colors[2];echo "<br>";

表示

配列をforeachで回して扱う

foreachを使えば、配列を簡単に値を取り出したり代入したりができるようになる。


//foreach
echo "<br>■foreachを使うと配列のキーとバリューを1個1個取り出せる<br>";
foreach ($zaiko as $key => $value) {
  echo "($key) $value ";
}

echo "<br>■foreachの書き方その2<br>";
foreach ($colors as $value) {
  echo "$value ";
}

表示

{}の代わりに:コロンを使う

PHPならではの記述方法。

<?
//コロン構文
echo "<br>■コロン構文<br>";
foreach ($colors as $value) :
  echo "$value ";
endforeach;
?>

<br>■コロン構文を使うとHTMLへの埋め込みのときにスッキリ書ける<br>
<ul>
  <?php foreach ($colors as $value) : ?>
    <li><?php echo "$value "; ?></li>
  <?php endforeach; ?>
</ul>

<br>■でもこっちの方が好きかな<br>
<ul>
  <?php foreach ($colors as $value) { ?>
    <li><?php echo "$value "; ?></li>
  <?php } ?>
</ul>

表示