昨日からPHPの学習に突入しました。
ということで、本日もやっていきましょう。
変数について
デイトラでは「データに名前をつける行為」と紹介されています。
ラベルが貼られた「箱」に「データ」を入れて管理する仕組みのようなもの。
ダンボールにりんごを入れて、何が入っているのかがわかるように「りんご」と書かれたラベルをダンボールに貼るみたいなイメージをしています。
ここでは「りんご」がデータで、「ダンボール箱とラベル」が変数(変数名)です。
変数を定義する
PHPでの変数の定義は以下のように記述します。
<?php
$tax = 1.10;
?>
ルールとしては、
「$」記号を先頭に付けて、その後に半角アルファベット小文字で変数名を記述する。
そして、変数に入れる値(データ)を 「=」の後に書いて、「;」セミコロンで締める。
$変数名 = データ;
という形です。
先程の具体例の変数定義を確認すると、
「tax」という「変数名」の変数に、
「1.10」という「数値データ」が入っている状態です。
名前をつけてデータを管理するので、中の値が何なのかが名前から推測できますね。
ここでは消費税率のつもりで、変数名をつけています。
他者からも「わかりやすい」が名前としては大切ですよね。
変数を使う
変数を定義しても、使わなければ宝の持ち腐れですね。
使っていきましょう。
昨日の学習で文字列表示をやったので、それと組み合わせて使っていきます。
<h1><?php echo $tax; ?></h1>
これをindex.phpに記述して、ブラウザからローカルホストにアクセスすると
1.10がh1タグのデザインで表示されるはずです。
1.10では無かったですね。
これは…
「文字列」として1.10を変数で持っていれば表示されるのでしょうか。
変数に代入したのが「数値」だから0は切り捨てられて、1.1になっているのでしょうかね。
とは言え、このように変数は使うことができます。
もちろん、途中で値を変えることもできます。
例えば消費税が増税されたら
<?php
$tax =1.1;
echo $tax;
$tax =1.12;
echo $tax;
?>
とすると、taxに1.1が代入されて、echo で中身の1.1表示されて、その後でtaxに1.2が代入されて、echoで1.2が表示される
こんな流れになります。
増税は嬉しくないですが、こうして処理の途中で変数の中の値を変更することも可能です。
関数(function)について
関数は
「処理をまとめて、名前をつけたもの」
です。
先に形だけ確認しましょう。
関数の定義は、
function 関数名(引数){
処理内容
返り値
}
このようにします。
そして、関数を使うときは
関数名(引数);
これだけです。
後ほど実際に定義して使いますので、「ふーん」くらいで流してください。
処理をまとめるとは
例えば、消費税込み価格を計算したい時に
<?php
$tax =1.1;
$price = 1000;
$payment = $price * $tax;
echo $payment;
?>
こんな感じで計算をすることもできます。
が、
こうした何度も使いそうな処理は、
まとめて何回も使えるほうが良いですよね?
そんな時に関数を使いましょうよって事です。
処理をまとめて、名前をつけられるので、例えば
function calcPayment($price){
$tax =1.1;
$payment = $price * $tax;
return $payment;
}
のように意味のわかる名前をつけて、処理を中に書きます。
因みに、$priceは引数で関数を使う時に内部の処理とデータのやり取りをする橋渡し役的な変数です。
なので実際に関数を使う際に、
calcPayment(1000);とすれば、内部の$priceには1000が代入された状態で処理されるということです。
上記の関数では$taxは内部で定義されていますが、$priceは定義されていませんよね。
さらに、return $payment;は返り値といって、呼び出し元に返す値のことです。
上記の関数では、$paymentは$taxと$priceを掛けた値が代入されるので、税込み価格が返り値として呼び出し元に返ってくるわけです。
じゃあ、1500円の税込価格を表示したいと言ったら
どう記述すればよいのでしょうか。
<?php
function calcPayment($price){
$tax =1.1;
$payment = $price * $tax;
return $payment;
}
echo calcPayment(1500);
?>
とすれば良さそうですね。
そして、1500円以外の他の税込価格を知りたい場合でも
<?php
function calcPayment($price){
$tax =1.1;
$payment = $price * $tax;
return $payment;
}
echo calcPayment(1500);
echo '<br>';
echo calcPayment(2000);
echo '<br>';
echo calcPayment(4300);
?>
のように処理は1度書いてあるので、
後は関数に引数を渡すだけで計算結果が返ってきます。
それをechoで表示するだけですね。( echo '<br>';これはHTMLに改行タグを差し込んでいるだけです。)
実際の実行結果はこちら
今日のまとめ
- 変数はラベリングできる箱で、データを格納できるもの。
- 関数は処理をまとめて、名前をつけて、使いまわしできるもの。
確認の意味も込めて、ながながと記事にしてしまいました。
明日も引き続きやっていきます。
では、また。