開発ノート【PHP言語】
開発ノート【PHP言語】です。
当サイトは、Bootstrap5で製作しています。
関連サイト
| 種類 | サイト名称/ページタイトル | 説明 |
|---|---|---|
| 公式サイト(ドキュメント) | PHP Documentation | PHPのドキュメント公式サイトです。 |
| 公式サイト(ドキュメント:配列 関数) | PHP: 配列 関数 - Manual | PHPのドキュメント公式サイトです。(配列 関数) |
PHP言語(ファンクション)
| PHP | 説明 | オプション | 使用例 |
|---|---|---|---|
| 変数へ代入 | 変数に式(値)を代入する。 |
// 値を代入
$price = 150+80;
// 定数を代入
define(TAX, 10);
// 足し算して3桁の,(カンマ)区切り編集
$sum = 10005000 + 150;
$sum = number_format($sum);
// キーボードから入力
$number = trim(fgets(STDIN));
|
|
| // コメント | 1行コメント ※行を選択して[ctrl]+[/]でショートカット出来る。 |
// 〇〇処理
|
|
| # コメント | 1行コメント ※「//」と同じ動きをするが、一般的には「//」を使う。 |
// 〇〇処理
|
|
| /* コメント コメント */ |
複数行コメント |
/*
echo 'コメントを学習しています';
echo 'コメントを学習しています';
*/
|
|
| break; |
for、foreach、while、do-while、switchの実行を終了させる。 ※反復処理のときは、反復処理を中断して、反復処理を抜ける。 |
$color = ['黒', '白', '', '赤'];
foreach ($color as $color_name) {
if ($color_name === '') {
break;
}
echo $color_name, "\n";
}
実行結果黒 白 |
|
| continue; | 反復処理の後続をスキップして、反復処理の先頭に処理を移す。 |
$color = ['黒', '白', '', '赤'];
foreach ($color as $color_name) {
if ($color_name === '') {
continue;
}
echo $color_name, "\n";
}
実行結果黒 白 赤 |
|
| date() |
ローカルの日付、時刻を書式化する。 参)書式パラメーター |
date('Y') 西暦年を取得。 |
echo '今年は、', date('Y'), '年です';
実行結果今年は、2021年です |
|
date('y/m/d',) 西暦年月日を取得。 |
date_default_timezone_set('Asia/Tokyo');
$today = time();
$format_date = date('Y/m/d', $today);
echo $format_date;
2021/06/18 |
||
| function | ファンクションの宣言 |
// 連想配列を受け取って、リストにして出力する
function make_list($list) {
foreach ($list as $key => $value) {
echo $key, ':', $value, "\n";
}
}
$pref = [
'hokkidou' => '北海道',
'aomori' => '青森県',
'iwate' => '岩手県',
];
make_list($pref);
実行結果hokkidou:北海道 aomori:青森県 iwate:岩手県 ※make_list:ファンクションの名前 ※$list:パラメーター |
|
| is_numeric(変数) |
変数が数字又は数値形式の文字列であるかを調べる。 戻り値 true:数値又は数値形式の文字列であるとき。 false:それ以外のとき。 |
$number = '10';
if (is_numeric($number)) { // == trueを省略
echo '数字です';
} else {
echo '数字ではありません';
}
|
|
| print_r() |
指定した変数に関する情報を解りやすく出力する。 ※配列で使うと便利。 |
$book = [
['デザイン入門', 'デザインの基礎'],
['PHP入門', '高度なPHP開発']
];
print_r($book);
実行結果Array ( [0] => Array ( [0] => デザイン入門 [1] => デザインの基礎 ) [1] => Array ( [0] => PHP入門 [1] => 高度なPHP開発 ) ) |
|
| rand() | 乱数を生成する。 |
$dice = rand(1,6); // 1は最小値、6は最大値
echo $dice;
|
|
| time() | 現在の日時を取得する。 |
$today = time();
echo $today;
実行結果1623980663 ※現在の日時を秒数(1970年1月1日00:00:00 GMTからの通算秒)で返してくる。 ※GMT:グリニッジ標準時。 |
|
| *** | *** | *** | *** |
画面出力(表示)の仕方
- echo
- <?=
※printは使わない。
echoとprintの違い
echoは、printと同じ役割(文字列を出力する)を持っている。
echo ( string ...$expressions ) : void
print ( string $expression ) : int
違いは、
-
パラメーターの数
echo:何個でも指定出来る。
print:一つしか指定出来ない。echo 'echoで出力しています', ' / 2つめの文章です', ' / 3つめの文章です'; print(' / printで出力しています'); -
戻り値の有無
void:戻り値なし
int:整数
<?=(ショートタグ、ショートオープンタグ)
echoで記述するのが面倒な場合やhtmlと混在するときに使う。
<?= ショートタグで出力しています ?>
<?php
echo ' / echoで出力しています', ' / 2つめの文章です', ' / 3つめの文章です';
print(' / printで出力しています');
実行結果ショートタグで出力しています / echoで出力しています / 2つめの文章です / 3つめの文章です / printで出力しています
型キャスト
- 型を変換すること。
$number1 = 10; // int型(整数型)
$number2 = 10.0; // float型(浮動小数点型)
if ($number1 === (int)$number2) { // (int)$number2で、$number2はint型の10になる。
echo '同じです';
}
実行結果同じです
$number1 = 10; // int型(整数型)
$number2 = '10'; // string型(文字列型)
if ($number1 === (int)$number2) { // (int)$number2で、$number2はint型の10になる。
echo '同じです';
}
実行結果同じです
制御構文
if文
※下の2つのプログラムは同じ動きをする。(記述の仕方が異なる)
// 10よりも大きいかを判断する
if ($number > 10) {
echo '10よりも大きいです';
} else {
echo '10以下です';
}
// 10よりも大きいかを判断する
if ($number > 10):
echo '10よりも大きいです';
else:
echo '10以下です';
endif;
条件式の応用
- (条件式)は省略出来る。
$number = 10;
$numeric = is_numeric($number); // is_numeric:属性が数値か判断する
if ($numeric == true) {
echo '数字です';
} else {
echo '数字ではありません';
}
if ($numeric) { // == trueを省略
echo '数字です';
} else {
echo '数字ではありません';
}
elseif文
※下の3つのプログラムは同じ動きをする。
// 10よりも大きいか、等しいか、それ未満かを判断する
if ($number > 10) {
echo '10よりも大きいです';
} else {
if ($number == 10) {
echo '10です';
} else {
echo '10未満です';
}
}
// 10よりも大きいか、等しいか、それ未満かを判断する
if ($number > 10) {
echo '10よりも大きいです';
} elseif($number == 10) {
echo '10です';
} else {
echo '10未満です';
}
// 10よりも大きいか、等しいか、それ未満かを判断する
if ($number > 10) {
echo '10よりも大きいです';
} elseif($number == 10) {
echo '10です';
} elseif($number <= 0) {
echo '0以下です';
} else {
echo '10未満です';
}
switch文
-
不等号は使えない。
※不等号の処理は、elseif文を使う。 - break文は省略可だが、省略するとcase文を無視して、break文が見つかるまで後続の処理を続ける。
echo '色を選んでください(1:黒、2:白、3:赤) >';
$color = (int)trim(fgets(STDIN));
switch ($color) {
case 1:
echo '黒が選ばれました';
break;
case 2:
echo '白が選ばれました';
break;
case 3:
echo '赤が選ばれました';
break;
}
配列の関数
count文
- 変数に含まれる全ての要素やオブジェクトに含まれる何かの数を数える。
$color = ['黒', '白', '赤'];
$max = count($color);
echo $color[$max-1];
実行結果赤
array_unshift文
- 一つ以上の要素を、配列の最初に加える。
$color = ['黒', '白', '赤'];
array_unshift($color,'緑', '黄');
print_r($color);
実行結果Array
(
[0] => 緑
[1] => 黄
[2] => 黒
[3] => 白
[4] => 赤
)
array_push文
- 一つ以上の要素を、配列の最後に追加する。
※下の2つのプログラムは同じ動きをする。
$color = ['黒', '白', '赤'];
array_push($color,'緑', '黄');
print_r($color);
$color = ['黒', '白', '赤'];
// array_push($color,'緑', '黄');
$color[] = '緑';
$color[] = '黄';
print_r($color);
実行結果Array
(
[0] => 黒
[1] => 白
[2] => 赤
[3] => 緑
[4] => 黄
)
array_merge文
- 一つ又は複数の配列を、マージする。
$color1 = ['黒', '白', '赤'];
$color2 = ['緑', '黄'];
$new_color = array_merge($color1, $color2);
print_r($new_color);
実行結果Array
(
[0] => 黒
[1] => 白
[2] => 赤
[3] => 緑
[4] => 黄
)
array_shift文
- 配列の先頭から、要素を一つ取り出す。(取り出された要素は、配列から消える)
$color = ['黒', '白', '赤'];
$mycolor = array_shift($color);
echo $mycolor;
echo "\n";
print_r($color);
実行結果黒
Array
(
[0] => 白
[1] => 赤
)
array_pop文
- 配列の末尾から、要素を取り除く。(取り除かれた要素は、配列から消える)
$color = ['黒', '白', '赤'];
$mycolor = array_pop($color);
echo $mycolor;
echo "\n";
print_r($color);
実行結果赤
Array
(
[0] => 黒
[1] => 白
)
implode文
- 配列要素を連結して、文字列にする。
$color = ['黒', '白', '赤'];
$color_string = implode(',', $color);
print($color_string);
実行結果黒,白,赤
explode文
- 文字列を、配列要素に分割する。
$color = ['黒', '白', '赤'];
$color_string = implode(',', $color);
$color_string .= ',緑,黄';
print($color_string);
echo "\n";
$newarray = explode(',', $color_string);
print_r($newarray);
実行結果黒,白,赤,緑,黄
Array
(
[0] => 黒
[1] => 白
[2] => 赤
[3] => 緑
[4] => 黄
)
反復処理(ループ処理)
while文
- 最も簡単なループ処理。
- 反復回数が決まっていないとき使う。
- 反復条件によっては、反復処理を一回も行わないときもある。
$q1 = 5;
$q2 = 10;
echo $q1, '+', $q2, 'は? >';
$answer = (int)trim(fgets(STDIN));
while ($answer !== $q1+$q2) {
echo 'はずれ。もう一回 >';
$answer = (int)trim(fgets(STDIN));
}
echo 'あたり!';
実行結果5+10は? >5
はずれ。もう一回 >15
あたり!
do-while文
- 反復回数が決まっていないとき使う。
-
反復処理は、必ず一回は行われる。
※反復条件を、反復処理の後で判断しているため。
do {
$dice = rand(1, 6);
echo $dice, "\n";
} while ($dice !== 1);
実行結果4
1
- do-whileでbreakされるまで反復する。
do {
echo '点数を入力 >';
$score = (int)trim(fgets(STDIN));
if ($score === -1) {
break;
}
array_push($scores, $score);
$sum = 0; // 合計
for ($i=0; $i<count($scores); $i++) {
echo $i+1, '.', $scores[$i], "\n";
$sum += $scores[$i];
}
echo '合計: ', $sum, "\n";
$avg = $sum / count($scores);
echo '平均: ', $avg, "\n";
// } while($score !== -1);
} while(true); // breakされるまで続ける
実行結果foreach文
- 配列を反復処理するための便利なファンクション。
- foreachが使えるのは、配列とオブジェクトだけ。
- 要素の数だけ反復してくれる。
※($pref as $pref_name)は、$prefの中の一つめの要素の値を$pref_nameに代入するという意味。
$pref = [
'hokkidou' => '北海道',
'aomori' => '青森県',
'iwate' => '岩手県',
'akita' => '秋田県'
];
foreach ($pref as $pref_name) {
echo $pref_name, "\n";
}
foreach ($pref as $pref_key => $pref_name) {
echo $pref_key, ':', $pref_name, "\n";
}
実行結果北海道
青森県
岩手県
秋田県
hokkidou:北海道
aomori:青森県
iwate:岩手県
akita:秋田県
for文
$color = ['黒', '白', '赤', '黄'];
for ($i=0; $i<count($color); $i++) {
echo $color[$i], "\n";
}
実行結果黒
白
赤
黄
continue文
- 反復処理の後続をスキップして、反復処理の先頭に処理を移す。
$color = ['黒', '白', '', '赤'];
foreach ($color as $color_name) {
if ($color_name === '') {
continue;
}
echo $color_name, "\n";
}
実行結果黒
白
赤
break文
-
for、foreach、while、do-while、switchの実行を終了させる。
※反復処理のときは、反復処理を中断して、反復処理を抜ける。
$color = ['黒', '白', '', '赤'];
foreach ($color as $color_name) {
if ($color_name === '') {
break;
}
echo $color_name, "\n";
}
実行結果黒
白