文字列演算子とは文字列の結合を行うもの
$a . $b $aと$bを結合する
文字列演算子とは文字列の結合を行うもの
$a . $b $aと$bを結合する
代入演算子とは「=」のことで左辺を右辺に代入するもの
算数の式を記述するとき3 + 7 = 10 と表現する
ここで記述されるイコール 「=」 は左辺の計算結果がとその答えが等しいという意味
しかしほとんどのプログラム言語では「代入する」という考え方が一般的
変数や配列などで定義される「ある値」を右辺に記述し左辺に代入するという基本的な約束がある
$a = $b $aに$bを代入する
= 代入 $x = 15 左辺 $x に右辺 15という値を代入し格納する
+= 加算代入 $x += 15 変数 $x に右辺 15という値を加算して代入する
.= 連結代入 $x .= $y 変数 $x に変数 $yの値を連結して 代入する
++ 加算代入 $x ++ 変数 $x の値に1を加算して代入する
-- 減算代入 $x -- 変数 $x の値に1を減算して代入する
変数に代入される値は数値だけでなく文字列も代入することができる
文字数に制限はない
しかし文字列を変数に代入する場合には
シングルコーティション( ')あるいはダブルコーティション( ")で囲まなければならない
比較演算子とは大小関係や等しいかどうかなどの比較を行うもの
2つの値を「ある条件」で比較し条件にマッチすれば「true」
条件が成立しない場合には、「false」を返す
$a == $b $aと$bが等しいとTRUE
$a != $b $aと$bが等しくないとTRUE
$a < $b $aが$bより小さいとTRUE
$a > $b $aが$bより大きいとTRUE
$a <= $b $aが$bより小さいか等しいとTRUE
$a >= $b $aが$bより大きいか等しいとTRUE
== 等しい $x == 15 変数$x と 15は等しい
< 小さい $x < 15 変数$x は 15より小さい
> 大きい $x > 15 変数$x は 15より大きい
<= 同じか小さい $x <= 15 変数$x は 15より同じ、または小さい
>= 同じか大きい $x >= 15 変数$x は 15より同じ、または大きい
!= 等しくない $x != 15 変数$x は 15と等しくない
<> 等しくない $x <> 15 変数$x は 15と等しくない
算術演算子とは足し算や引き算を行うもの
$a + $b $aに$bを足す
$a - $b $aから$bを引く
$a * $b $aに$bをかける
$a / $b $aから$bを割る
$a % $b $aを$bで割った余り
++$a $aの値に1を足した後$aを返す
$a++ $aを返した後に$aの値に1を足す
--$a $aの値に1を引いた後$aを返す
$a-- $aを返した後に$aの値に1を引く
+ 加算 17 + 5 2つ以上の値の足し算を行う
- 減算 17 - 5 2つ以上の値の引き算を行う
* 乗算 17 * 5 2つ以上の値の掛け算を行う
/ 乗算 17 / 5 2つ以上の値の割り算を行う
% 剰余 17 % 5 割り算したときの割り切れなかった数を求める
変数にはスコープと呼ばれる有効範囲が存在する
関数内で定義された変数をローカル変数と言い関数以外で宣言された変数はグローバル変数と言う
関数の外で宣言されている$aはグローバル変数
中で宣言されている$aはローカル変数でそれぞれは別物という扱いになる
<?php
$a = 1; /* グローバルスコープ */
function test()
{
echo $a; /* ローカルスコープ変数の参照 */
}
test();
?>
このスクリプトは、出力を全く行いません。
これは、echo 命令がローカ ル版の $a 変数を参照しているにもかかわらずこのスコープでは
値が代入されていないから
グローバル変数は、関数の内部で使用する場合、関数の内部でグローバルとして宣言する必要がある
global キーワード
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
実行結果は
3
となる
関数の内部で $a、$bをグローバル宣言を行うことにより両変数への参照は
グローバル変数 の方を参照することになる
ある関数により操作できるグローバル変数の数は無制限
グローバルスコープから変数をアクセスする2番目の方法は
PHPが定義する配列$GLOBALSを使用すること
次のように書き換えることが可能
<?php
$a = 1;
$b = 2;
function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
Sum();
echo $b;
?>
実行結果は
3
となる