◆20200902 授業メモ PHP 連想配列 算術演算子 .round()に関する問題演習
本日の授業内容
要約
○連想配列
・JSの配列→
var items=[
'りんご',//0
'みかん',//1
'どりあん',//2
];
→部屋名としてに勝手に0~2の数字が振られる
・PHPの配列→
var items=[
'no1'=>'りんご',
'no2'=>'みかん',
'no3'=>'どりあん',
];
→部屋名をつけることができ、表示させる際にも使用する。
○算術演算子
PHPで計算式を作る際は数式に( )を必ず付けること。
つけないとエラーになる。
例)(1+2)、(1*2)・・・・
○数値を扱う関数
ceil、floor、round等・・・
詳細は翌日の記事に。
以下板書
〇連想配列
PHPの利点→同じような構成のHPを量産するときに。
・arrayを用いた作成方法
<? php
$items = array(
'f-001' => 'りんご',
'f-002' => 'みかん',
'd-001' => '水',
'd-002' => 'コーラ',
);
・配列リテラルを用いた作成方法
$northKanto = [
9 => '栃木県',
];
echo '<h2>1回目の出力</h2>';
echo '<pre>';
var_dump($items);
echo '</pre>';
echo '<pre>';
var_dump($northKanto);
echo '</pre>';
echo '<h2>2回目の出力</h2>';
echo $items['f-001'];
echo '<br>';
echo $items['f-002'];
echo '<br>';
echo $items['d-001'];
echo '<br>';
echo $items['d-002'];
echo '<br>';
echo count($items);
echo '<h2>3回目の出力</h2>';
echo $northKanto[8];
echo '<br>';
echo $northKanto[9];
echo '<br>';
echo $northKanto[10];
echo '<br>';
echo count($northKanto);
?>
< !--JSで記述する場合 -->
<script>
let array = ;
let kanto = [
array[1] = '茨城県',
array[2] = '栃木県',
array[3] = '群馬県',
];
console.log(kanto);
console.log(kanto[2]);
// JSだと0番から番号が自動でふられるので不要な部屋がでてしまう
</script>
注意
arrayと配列リテラルの記述の仕方が違うのでどちらか使用する際には細かい記述に注意を払うこと。
( )のつけ忘れや, 、; のつけ忘れ等。
〇算術演算子に関する注意
<? php
echo '<h1>1回目の出力</h1>';
echo(5 + 2). '<br>';
echo(5 - 2). '<br>';
echo(5 * 2). '<br>';
echo(5 / 2). '<br>';
echo(5 % 2). '<br>';
// 数字と算術演算子は()で囲わないとエラーの原因になるので注意
echo '<h1>2回目の出力</h1>';
echo '答えは'. (4 + 2). '<br>';
// '答えは'.4→'答えは4'
// '答えは4'+2「足し算をしようとする」
// 文字列「'答えは4'」のデータ型を数値型に変更
// 文字列を数値型に変更する際のルール
// 文字列内に数値がない→0
// 文字列内の戦闘以外に数値がある→0
// 文字列内の先頭に数値がある→先頭にある数値を
// EX)'10ですよ'→10
// echo '答えは'. 4 + 2. '<br>';
// ↑0+2→2
// 2.<br>→'2<br>'
// warningエラーが出る
// PHP8からは「+」「-」の優先度が「.」よりも高くなる
// ・・・とりあえず( )をつけておけば無難かも
echo '答えは'. (4 - 2). '<br>';
echo '答えは'. (4 * 2). '<br>';
echo '答えは'. (4 / 2). '<br>';
echo '答えは'. (4 % 2). '<br>';
// PHPで文字列を使った計算は注意
echo '<br>';
echo '文字列' + 10; //0+10=10
echo '<br>';
echo '文字列5' + 10; //0+10=10
echo '<br>';
echo '5文字列' + 10; //5+10=15
echo '<br>';
echo '5' + 10; //5+10=15
// ↑これはエラーが出ることなく計算される
?>
〇数値を扱う関数
< h1 > 税込金額</ >
<? php
$price = 198;
$tax = 0.1;
$total = $price * (1 + $tax);
echo '<h2>1回目の出力</h2>';
echo '<p>商品価格:'.$price. '円</p>';
echo '<p>税率:'.$tax. '</p>';
echo '<p>税込金額:'.$total. '円</p>';
echo '<h2>2回目の出力</h2>';
echo '<p>税込金額(切り上げ):'.ceil($total). '円</p>';
echo '<p>税込金額(四捨五入):'.round($total). '円</p>';
echo '<p>税込金額(切り捨て):'.floor($total). '円</p>';
// round・・丸め処理
// round( float $val[,int $precision=0[,int $mode=PHP_ROUND_HALF_UP]])
// 関数名(データ型 説明用名称):戻り値の型
// で囲まれた引数は省略可能
// 省略可能引数:[int $precision=0]
// 第一引数(float:小数):丸める値
// 第二引数(int:整数):丸める桁の位置
// →省略可:0になるように丸め
// 第三引数(int:整数):丸めモード
// PHP_ROUND_HALF_UP(四捨五入)
// PHP_ROUND_HALF_UPは定数で中にINT型の整数が入っている。
// round(123.456,2,1)←記述する際はこの形でおk
// 戻り値(float:小数):丸め処理後の値
?>