このページについて
このページではphpで使える変数とその使い方をまとめて解説しています。
変数とは
変数とはプログラミングにおいてよく使われるあれですね。変数として設定したものや処理の最中で一時的に変数に保存したものは後から呼び出して処理を行ったり、そのまま出力することもできます。
変数にはいくつか種類がありますが、phpには基本的には1種類だけです。変数を使うには$マークを使います。変数の名前に使えるルールは以下の通りです。
- $記号で始まる
- 文字かアンダースコアで始まる
- 数字では始められない
- 変数の名前にはアルファベット・記号・数字を含められる
- 変数名の大文字小文字は区別する
このルールはどのプログラミング言語においても大体共通してることなので覚えておくといいかもしれませんね。
そして=記号で入れる内容を指定します。
変数の型
変数の型は自動で判断されます。型とは文字列なのか、数字なのかっていうことですね。phpの変数型は入れたものを自動で判断して適した型にしてくれます。なので以下はどちらも可能です。
$num1 = 1;
$num2 = '1';
echo $num1 + $num2; //2が表示
echo $num1.$num2; //11が表示
この2つの変数(num1とnum2)は1つ目が数字を、2つ目は文字列としてそれぞれ中身を入れています。そして3行目の足し算は数字+文字列という奇妙な計算式にはなっていますが、結果は2と表示されます。そして最後の行では変数の中身を連結して表示するという使い方をしていますが、この場合は2つをそのまま結合して11と表示されます。
このように変数の型は自動で判断して適した計算をしてくれます。当然ですが、文字列としてアルファベットやらを入れて足し算した場合はエラーとなります。
変数同士の計算
上で軽く触れましたが、変数に数字を入れた場合に変数同士で計算もできます。使える演算子は以下の通りです。
- +
- 変数同士を足し算します。
- –
- 変数A-変数Bの場合、変数AからBを引きます。
- /
- 変数A/変数Bの場合、変数Aを変数Bで割ります。
- *
- 変数A*変数Bの場合、変数Aに変数Bを掛けます。
- %
- 変数A%変数Bの場合、変数Aを変数Bで割った余りを求めます。
- **
- 変数A**変数Bの場合、変数Aを変数Bの数だけ冪乗します。
それぞれ簡単に使えるものばかりですね。これば全て変数同士の計算で使うものですが、変数そのものに対して代入する時に使うものもあります。
変数の代入演算子
変数に値を入れる際に使うのは=ですが、それ以外にも使う事ができる演算子があります。
- =
- 一番使うやつかもしれません。
$a= 1
変数に指定した値を入れます。 - +=
- 変数aに値Bを加算して代入します。
$a += 100の場合、$aに100足した数値が$aに入ります。$aが1なら101が、4なら104になります。 - -=
- 変数aに値Bを引いた値を代入します。
$a -= 100の場合、$aから100引いた数値を$aに代入します。$aが200なら100が、1000なら900が入ります。 - *=
- 変数aに値Aを掛けたものを代入します。
$a *= 100の場合、$aに100をかけたものが代入されます。$aが2なら200が入ります。 - /=
- 変数aに、変数aを値bで割った数値が入ります。
$a /= 100の場合、$aを100で割った数値が入ります。$aが200なら2が入ります。 - %=
- 変数aに、変数aを値bで割った余りが入ります。
$a %= 10の場合、$aが5なら余りは無いので0が代入されます。$aが6なら10となります。
代入演算子を使えば$a=$a+1のように変数名を省略できるので、コードを書くのが簡単になります。
変数の比較演算子
次はif文とかでも使える、比較演算子です。
- ==
- $a==$bのように使います。通常の=は変数に入れる時に使うので、完全に等しいかどうかを判定するには==を使います。
- ===
- $a===$bのように使います。==は値が等しいかどうかを判定しますが、===は型と中身が等しいかどうかを判定します。
$a = 100と$b = 100の2つを===で比較した場合はtrueですが、片方が=’100’となっている場合はfalseとなります。 - !=
- $a!=$bのように使います。これはnot equal(ノットイコール)と言って、簡単にいえば条件が反転します。if文などでも使われますが、「$aが1ならば」という条件は$a==1と表記しますが、!=を使った場合は「$aが1じゃない場合」という条件になります。
- <>
- これもnot equalです。これも上と同じく、型の相互変換をした上でイコールじゃないければtrueを返します。
- !==
- $aと$bを比較して値と型が等しく無い場合に、trueを返します。逆に全く同じ数値同士を比較した場合はfalseを返します。
- <
- $a<$bと使うと、aとbの大小を比較します。そしてbのほうが大きければtrueを、aの方が大きければfalseを返します。
- >
- $a>$bと使うと、aとbの大小を比較してaが大きければtrueを返します。
- <=
- $a<=$bと使うと、aとbの大小を比較します。bのほうが大きい、もしくは同じ数値の場合trueが返ってきます。
- <=>
- $a<=>$bと使うと、aとbの大小を比較します。そしてaが大きければ1を、bのほうが大きければ-1を、同じ値なら0となります。
一番使うのはやはり<や<=などですね。if文などの比較条件に使う事が多いです。
インクリメント/デクリメント演算子
インクリメントは加算を、デクリメントは減算をします。よく使われるのはforループの回数指定とかですね。
- $a++
- aを返した後で、1を加算してaに入れます。
aが1ならば、2→3→4となります。 - ++$a
- aに1を加算し、aに値を入れます。
- $a–
- aを返した後で、1を減算してaに入れます。
- –$a
- aから1を減算し、aに値を入れます。
これの違いは「入れてから加算するか、入れる前に加算するか」っていう感じです。実際に実行すると以下のようになります。
これは$aに1を入れた状態で、10回のforループを2パターン実行したものです。1つ目の1から10まで横並びになっている方がよく使われるループで、$a++を使っています。
対してその下にある改行された10個の数値は++$aを使っています。これは「$aに1を加えた後で、$aに入れ直している」ため、12とか13とかよく分からん感じになっていますよね。こういう違いがあります。
論理演算子
変数同士を比較するものだったり加算したりするものが多かったんですが、次は条件で使う時に使用する論理演算子です。
- and
- $a and $dはどちらも条件を比較する対象に含めます。なので$aのみ条件を満たしていても$bが条件を満たしていない場合はfalseとなります。両方とも条件を満たしている時のみtrueとなります。
- or
- $a or $bはどちらかが条件を満たしていればtrueとなります。
- xor
- $a xor $bはどちらかがtrueかつ、両方ともtrueでは無い場合のみ、trueとなります。
- !$a
- $aがtrueではない場合に、trueとなります。!=みたいなnotです。
- &&
- $a && $bはどちらもtrueの場合にtrueとなります。
- ||
- $a || $bはどちらかがtrueならばtrueとなります。
andと&&、orと||は同じ機能を持っていますが演算子の優先順位が異なります。&&や||のほうが優先順位が高くなります。
文字列演算子
変数に文字が入れてある場合、または数値が入れてある場合に使える演算子です。
- .
- $a.$bとするとaとbを結合します。
- .=
- $a.=$bとすると、aとbを結合した状態で$aに入れます。
単純に文字のみを結合する場合は.を、文字を結合した状態で変数に代入したい場合は.=を使い分けましょう。
まとめ
変数は値を一時的に入れて別の計算や処理に使ったりする事ができるのでものすごく便利です。いろんな演算子と共に使い方を把握しておきましょう。
- phpの基礎
- phpとは?JavaScriptとの違いは?みたいなことから、基本の書き方などを解説。
- echoとprint
- 画面に文字を出力する2種類の言語構造の使い方
- 変数
- phpで使える変数の扱い方などを解説しています。
- 変数のスコープ(有効範囲)
- 変数のスコープについての解説です。
- var_dump
- 変数の情報を見ることができる関数
- print_r
- 変数の情報をわかりやすい形式で表示する関数
- 配列と連想配列
- 配列と連想配列の書き方と、便利な関数の解説など。
- key
- 連想配列のキーを返してくれます。内部ポインタ関係あり。
- count
- 配列や連想配列の要素数を数えてくれる関数の使い方解説。
- ソート関数
- 配列に対してソートを行う関数の中から、代表的な5つの使い方解説です。
- array_reverse
- 配列の中身の順番を反転させる関数です。
- array_chunk
- 配列を指定した数で分割させるarray_chunk関数の使い方解説です。
- array_combine
- 2つの配列を足して1つの連想配列にする関数です。
- array_diff
- 2つの配列を比較して、存在しない値を出力する関数
- array_push
- 配列に対して後方に要素を追加する関数
- array_unshift
- 配列に対して先頭に要素を追加する関数。
- array_shift
- 配列の先頭の要素を取り出す関数。
- array_merge
- 複数の配列を統合して1次元の配列にする関数
- array_intersect
- 2つの配列を比較して、両方に共通するものを出力する関数
- include
- includeを使って別のphpファイルを読み込む方法の解説。
- if文
- if文を使って処理を変更させる方法の解説。
- switch文
- switch文を使って複数の処理分岐を行わせたい時に使います。
- forループ
- forループを使って同じ処理を行わせる方法の解説です。
- whileループ
- whileループを使って同じ処理を行わせる方法の解説と注意点。
- do-whileループ
- do-whileループを使って同じ処理を行わせる方法の解説です。
- foreachループ
- foreachループを使って配列内のアイテム全てに処理を行う方法の解説です。
- continue
- ループ処理の残りをスキップしつつ、ループの先頭に戻る制御構造
- ループのネスト構造(入れ子)
- ループの中にループを入れる書き方や考え方の解説。
- function
- functionを使って自作の関数を作成・使用する方法の解説。
- 引数の種類と書き方解説
- functionで扱う引数の種類と書き方を解説
- return
- returnの使い方と関数での使い方解説。
- class
- classを作成して変数と関数を1つにまとめる方法と使い方の解説。
- constructとdestruct
- classのインスタンス作成と同時に処理を行うconstructと、スクリプトの終了と同時に実行するdestructの解説です。
- インターフェイス
- インターフェイスという用語の解説と、実際の使い方解説
- トレイト
- コードを再利用するのに便利なトレイトの解説です。
- 列挙型
- プログラム中で使う変数名をあらかじめ定義しておく。そんな感じの型。
- PDOを使ってMySQLへ接続
- PDOを使ってMySQLへ接続し、データを取得する方法の解説です。
- データの加工と表示
- PDOでデータベースから取得したデータを加工して表示する方法の解説です。
- HTMLフォームのデータ受け取りと表示
- HTMLで作ったフォームからのデータの受け取り方法と、その表示方法の解説です。