変数と定数

変数(variable)とは

  • 変数はプログラム中のメモリ領域に付けた名前です
  • さまざまな値を一時的に記憶しておくために使われます
  • 言葉(文字列)や数字(数値)を一時的に保存する「箱」
  • 繰り返し使う言葉は「変数」として使う
  • 1回だけ書いてコピーするという発想

変数の使い方

  • 変数名を付けて文字列や数値を格納する
  • 変数名は英単語で命名するのが一般的
変数の定義
  • $(ドル記号)で始める
  • 変数宣言や型の宣言は必要ない
  • 英・数・アンダースコアのいずれかを用いる(特殊な記号は使用できない)
  • 数字で始めることはできない
  • 大文字と小文字を区別する
変数の名前付けルール
  • 変数の名前は「$」で始める
  • 変数名の先頭は英文字かアンダースコアであること
  • 変数名の2文字目以降は、英数字かアンダースコアであること
  • 変数名の大文字・小文字は区別される
読みやすいコードのための名前付け
  • 変数の中身を理解しやすい
  • 長すぎたり、省略し過ぎたりしない
  • 似たような名前を付けない
  • 基本的には英単語
  • 決められた記法で統一する(キャメルケース記法、アンダースコア記法、Pascal記法)

変数に値を代入(assignment)する

$product = '文字列';
$value = 数値;

あいさつを変数に代入(格納)する

<?php
  $message = 'こんにちは';


変数に格納したあいさつを表示する

<?php
  $message = 'こんにちは';
  print $message;
  print $message;
  print $message;

この記述では改行はされません。

変数に格納された値を確認する
  • print_r:指定した変数に関する情報を解りやすく出力する
  • var_dump:変数に関する情報をダンプする
<?php
  $message = 'こんにちは';
  print $message;
  var_dump( $message );
こんにちはstring(15) "こんにちは"

この場合、()内はバイト数です。

変数名の付け方
  • 「$」直後は数字以外にする
  • 「_ アンダースコア」は利用可、「- ハイフン」は不可
  • 変数名の「大文字」「小文字」は区別される
変数に格納した値を変更する
<?php
  $a = 'こんにちは';
  $b = 'こんばんは';
  print $b;
変数に対する処理の違い
  • ダブルクォーテーション ・・・文字列中の変数を展開する
  • シングルクォーテーション・・・文字列中の変数を展開しない

記述と表示例

<?php
  $price1 = 1000;
  $price2 = $price1 * 1.08;
  
  print $price1 . '円の商品の税込み価格は、' . $price2 . '円です。';
  • HTMLタグで出力する
  • 改行を出力する「"\n"」を記述する(文字列ではなく改行を判別するためにダブルクォーテーションで囲む)
<?php
// 変数に値を設定
$name = '山田';
$age  = 33;
// 変数に説明をつけて出力
print '<p>';
print ' 私は、' . $name . 'と申します。<br>' . "\n";
print ' 年齢は、' . $age . '才です。';
print '</p>';
<?php
// 変数に値を設定
$apple_price = 160;   // リンゴの値段(税抜き)
$apple_count = 3;     // リンゴの数
$banana_price = 120;  // バナナの値段(税抜き)
$banana_count = 6;    // バナナの数
$people = 3;          // 何人で買うか
$tax_rate = 0.08;     // 税率
// 商品の合計を求める
$value = $apple_price * $apple_count + $banana_price * $banana_count;
// 税金の金額を求める
$tax = ($value * $tax_rate);
// 税込み金額を求める
$total = $value + $tax;
// 人数で割る
$value2 = $total / $people;
// 結果を表示
print '<p>';
print '購入した果物の合計金額は、' . $total . '円で、3人で割ると一人あたり金額は、' . $value2 . '円です。';
print '</p>';
定数と変数の違い
  • 途中で中身を変更できない入れ物のことを「定数」と呼びます
  • 定数に一度何かデータを代入するとそれが固定値となり、それ以降プログラム処理の中で違うデータに変更することはできません
define ( '定数名', '' );
<?php
  define ( 'BIRTHDAY', '9月15日です' );
  print ( BIRTHDAY );  // 定数BIRTHDAYを表示します
?>

変数の型(type)

名前 説明
integer 整数

float

double

浮動小数点数
string 文字列
boolean 論理型(true/false)

データの型

数値型 整数型(integer)

-2、0、108など

浮動小数点型 1.414、0.5、5.5e6など

文字列型(string)

'こんにちは' など
真偽型(bool、boolean)

TRUE、FALSE

複合型(array、resource、object) 上に含まれない複合的な型

文字列の表現には注意
  • P.55参照
  • 以下の例では、変数展開が必要な「改行」処理に「ダブルクォート」を設定しています
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
<?php
  $url = 'http://www.wings.msn.to/';
  $memo1 = "サーバサイド技術の学び舎 - WINGS( {$url} )";
  $memo2 = 'サーバサイド技術の学び舎 - WINGS( ' . $url. ' )';
  print $memo1 . '<br>' . "\n";
  print $memo2 . "\n";
?>
</body>
</html>

変数の中身を調べる

プログラミングをしている途中で変数の内容を確認するには、
var_dump($変数名) または print_r($変数名) という指定を使います。

  • var_dump($変数名); という1文をコードの中に記述すると、変数の型と値を出力することができます
  • print_r($変数名) ; の場合は、値のみを出力することができます

まとめ

  • 変数は、データを一時的に保管するための入れ物です
  • 変数は、変数に値が最初にセットされたタイミングで自動的に準備されます
  • 変数の名前は「$」で始まらなければなりません