PHP基礎 (03) 変数と演算

lecture
スポンサーリンク

変数

変数はデータを一時的に格納する器のようなものです。PHPの変数はデータ型を意識せずに使用できます。
例えば文字列を格納した変数に後から数字をセットしてもよいのです。
C言語などを使っている方には少し気持ちの悪い仕組みかもしれませんが、PHPの場合は違う型のデータでも自動で変換されて処理されます。しかし、データ型の違いを意識した上でプログラミングを行うことは、正しいプログラムを書くために大切なことです。データ型が無いのではなく自動で合わせてくれていることを知っておくべきです。

変数の命名ルール

  • 変数名は$で始める
  • 変数名の先頭は英文字かアンダースコア_
  • 2文字移行は英数字かアンダースコア
  • 大文字小文字は区別される

変数名に限らずに命名規則で先頭に数字が使えないルールのものが多いです。命名するときの先頭に数字はやめておけと覚えておくとミスを減らせるコツになります。
ハイフン(-)は使用できません。プログラム上ハイフンはマイナスと認識されるからです。HTML属性(idとかclass名など)ではハイフンが使用可能ですが、これもJavaScriptなどでは誤認に繋がる原因にもなりますので注意が必要です。HTML属性においても、できるだけハイフンは避けてアンダースコアまたはキャメルケースを使用した方が賢明かもしれません。CSS側ではモジュールのルールをプリフィックスを使用する方法 layout-inline などの記法がありますが。。

キャメルケース記法
$myNameのように複数の単語を合わせた命名方法で先頭の単語は小文字で以降の単語の頭文字は大文字にする記法です。一般的によく使用されます。

演算子

operater
スクリプトの中でデータに対して行う演算の種類を表す記号をオペレータ(演算子)といい、処理されるデータのことをオペランドと呼びます。
PHPの多くの演算子は2つのオペランドををもとにした二項演算子です。三項演算子はシンプルなif文の代用として使用されます。
複数の演算子がある場合はその位置関係で優先順位が決まりますが、演算子により優先度が変わる場合もあります。下記表を参考にしてください。

PHPの演算子
算術演算子
演算子 意味 優先順位 使用例
+ 加算 15 10 + 5
減算 15 10 – 5
* 乗算 16 10 * 5
/ 乗算 16 10 / 5
% 剰余 16 10 % 5
比較演算子
== 等しい 12 $x == 10
< 小さい 13 $x < 10
> 大きい 13 $x > 10
<= 同じか小さい 13 $x <= 10
>= 同じか大きい 13 $x >= 10
!= 等しくない 12 $x != 10
<> 等しくない 12 $x <> 10
代入演算子
= 代入 5 $x = 10
+= 加算代入 5 $x += 10
.= 連結代入 5 $x .= $y
++ 加算代入 17 $x ++
減算代入 17 $x —
論理演算子
&& 論理積 8 $x && $y
|| 論理和 7 $x || $y
and 論理積 4 $x and $y
or 論理和 2 $x or $y
xor 論理和 3 $x or $y
! 否定 17 !$x

*優先順位は数字が大きい程優先順位が高いことを表しています。

暗黙のキャスト

PHPは変数に型を気にしないで代入することができます。これはPHPが自動的に型を変換しているからです。
多くの演算子は、オペランドに対して何らかの前提条件を持っています。たとえば算術演算子の場合は2つのオペランドが同じ型でなければなりません。これは通常のプログラムと同様です。そこでPHPはオペランドの型を暗黙的にキャストしています。PHPではこのことを特に「型のジャグリング」と呼んでいます。
算術演算の場合のジャグリング規則は次のとおりです。
整数 + 浮動小数 = 整数が浮動小数に変換される
整数 + 文字列  = 文字列が数値に変換 変換後浮動小数になったなら整数値が浮動小数になる
浮動小数 + 文字列 = 文字列が浮動小数に変換

文字列を連結するにはドット演算子「.」を使用します。

<?php echo '答えは' .$ans. 'です。' ; ?>

文字列連結演算子を使用するとオペランドを文字列にします。

変数を使った参考例

Q PHPで次のように表示するコードを変数を使用して記述してみましょう。
100+2=102
100×2=200

A コードは以下のようになります。

<?php 
 $x=100;
 $y=2;
 print($x.'+'.$y.'='.($x+$y)."<br>");
 echo $x.'x'.$y.'='.($x*$y);
?>

コメント

PHPのコメントは他のプログラムと同様で、単一行のコメントは//
複数行に渡るコメントは /*コメント*/ 
を使用します。

また、シェル形式のコメント 「#」 も使用できます。
C++形式の「//」もシェル形式と同様に使用できます。
シェル形式のコメント例

<?php 
#######################
##変数の使い方
#######################
 $x=100;
 $y=5;
 print($x.'+'.$y.'='.($x+$y)."<br>");
 #コレもあり  print $x.'+'.$y.'='.($x+$y)."<br>" ;
 echo $x.'x'.$y.'='.($x*$y);
?>

C++形式のコメント例

<?php 
////////////////////
//変数の使い方
////////////////////
 $x=100;
 $y=5;
 print($x.'+'.$y.'='.($x+$y)."<br>");
 //コレもあり  print $x.'+'.$y.'='.($x+$y)."<br>" ;
 echo $x.'x'.$y.'='.($x*$y);
?>
タイトルとURLをコピーしました