PHPのプログラミングメモ第2回です。何回かに分けてメモを投稿していきます。なお、この記事はプログラミングメモですので、どんどん追記していきます。
【コードの格納先】
【関連記事】
- 【PHP第1回】プログラミングメモ/プログラミングメモのコツ/環境構築
- 【PHP第2回】変数・定数・データ型・演算子
- 【PHP第3回】条件分岐・ループ処理
- 【PHP第4回】関数
- 【PHP第5回】配列
- 【PHP第6回】いろいろな関数(文字列を検索・文字列をソート)
- 【PHP第7回】コード記載時の注意点
変数
変数とは
- 前に$をつけて宣言
- 英字、数字、アンダーバーが使える
- 先頭に数字は使えない
キャメルケース
//一部大文字
$userCount = 0;
$userId = 1;
$inputFileName = "test.txt";
スネークケース
///単語をアンダースコアで区切る
$user_count = 0;
$user_id = 1;
$input_file_name = "test.txt";
分かりにくい変数名の例
なんの変数か分からないのでこのような書き方はしないのがベター。
$a = 0;
$b = 1;
$c = "test.txt";
分かりやすい変数名と分かりにくい変数名の比較
// 変数名はわかりやすくする
// キャメルケースとスネークケースが混在すると単語の区切りがわからない
// キャメルケースかスネークケースのどちらかで統一し、わかりやすく書く
$usercount = 0; //分かりにくい
$userCount or $user_count //分かりやすい
$userid = 1; //分かりにくい
$userId or $user_id //分かりやすい
$inputfilename = "test.txt"; //分かりにくい
$inputFileName or $input_filename //分かりやすい
変数の命名規則
current user item を要素語とした複合語の記法を例に記載
キャメルケース( camelCase )
- 記載例:currentUserItem
- 先頭の要素語( current )は小文字で書き始める
- 先頭以外の要素語( user item )の最初を大文字で書き始める
- 別名:ローワーキャメルケース
パスカルケース( PascalCase )
- 記載例:CurrentUserItem
- 要素語( current user item )の最初を大文字で書き始める
- 別名:アッパーキャメルケース
スネークケース( snake_case )
- 記載例:current_user_item
- アンダースコア で要素語( current user item )を連結
ケバブケース( kebab-case )
- 記載例:current-user-item
- ハイフン で要素語( current user item )を連結
本ブログでの命名規則
原則、以下で記載していきます。
- 関数 キャメルケース
- 変数 スネークケース
ローカル変数・グローバル変数
変数のスコープ
- 変数には「使える範囲(スコープ)」がある
- 関数内で宣言された変数は関数の外では使えない
- ※if文やfor文などの制御構文はその中で変数を作っても外で使える
- 関数内でのみ使える変数:ローカル変数
- 関数の外で作られた変数:グローバル変数
- 関数内でグローバル変数を使いたい場合:globalをつける
定数
// データの入れ物 値の書き換えが不可能
// 書き方
// define(定数名,値);
// sample code
define("GOOGLE_URL", "https://www.google.co.jp");
echo GOOGLE_URL;
// result
https://www.google.co.jp
データ型
- 変数には型がある
- 型とは「中に何を入れるか」決めたもの
- PHPの方は特殊
動的型付け言語と呼ばれ、変数内に入れたものをプログラムが自動で解釈する
// 文字列型 string
// 整数型 int
// 不動小数点型 float
// bool型 true/false
// 配列 array
// オブジェクト object
// ※PHPでは型の宣言はしなくても良い場合がある/自動解釈するため
// ※動的型付言語
【公式ドキュメント】
型
// sample code
// 変数を宣言
$number = 5;
$text = "test";
$flag = true;
$test = null;
// 確認のため変数を出力
echo $number,PHP_EOL;
echo $text,PHP_EOL;
echo $flag,PHP_EOL;
echo $test,PHP_EOL;
echo "----------",PHP_EOL;
// 変数の型を確認
var_dump($number)."\n";
var_dump($text)."\n";
var_dump($flag)."\n";
var_dump($test)."\n";
// result
5
test
1
----------
int(5)
string(4) "test"
bool(true)
NULL
debug
// var_dump:型に関する情報をダンプする
// sample code
$word = "php";
var_dump($word);
// result
string(3) "php"
【公式ドキュメント】
var_dump
文字列
【ダブルクォーテーション】
" "
// 変数を展開する
// 特殊文字(改行コード\n)を展開する
【シングルクォーテーション】
’ ’
// 変数を展開しない
// 特殊文字(改行コード\n)を展開しない
改行コードについて
- 「\n」はシングルクォーテーションで使えない
- シングルクォーテーションはエスケープシーケンスが使えないので、’\n’も使えない
- 「PHP_EOL」実行環境のOSに対応する改行コードを出力する定数。こちらを使うのが無難
PHP_EOLについて
- PHP_EOLは改行コード
- 改行コードは文字列
- phpでは文字列を結合した場合、整数型や真偽値などの単一な値は文字列にキャストされる
いろいろな演算子
代入演算子と算術演算子
代入演算子
=
// 右のものを左に入れる
算術演算子
// 変数などを足したり、引いたり、掛けたり、割ったりできる
// プログラム特有
// 余り算 %
//インクリメント デクリメント
インクリメント ++ 1足す
デクリメント -- 1ひく
// sample
// 本来はわかりやすい変数にするべきだが、仮で以下の変数を宣言
$a = 10 + 5;
$b = 10 - 5;
$c = 10 / 5;
$d = 10 * 5;
$e = 10 % 5;
$f = (1 + 2) * 3 * (4 + 5);
// 型を確認してみる
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
// 変数$gに1を足す処理
$g = 50;
$g++;
var_dump($g);
// 変数$gから1を引く処理
$g--;
var_dump($g);
// 変数$nameに文字列を入れて出力してみる
// 改行コードは「PHP_EOL」が利用可能
$name = "Jiro";
$value1 = "Hello {$name},PHP_EOL";
$value2 = 'Hello $name,PHP_EOL';
echo $name;
echo $value1;
echo $value2;
注意点
- 算術演算子の前には必ず前後にスペースを入れること
// sample code 1
echo "----------",PHP_EOL,"sample code 1",PHP_EOL,"----------",PHP_EOL;
// 基本的な計算
// 整数型の2つの変数を宣言
// 2つの変数を用いて、 足す、引く、かける、割る、割った余りを出力
$int_num1 = 8;
$int_num2 = 7;
// 足す
echo $int_num1 + $int_num2,PHP_EOL;
var_dump($int_num1 + $int_num2)."\n";
// 引く
echo $int_num1 - $int_num2,PHP_EOL;
var_dump($int_num1 - $int_num2)."\n";
// かける
echo $int_num1 * $int_num2,PHP_EOL;
var_dump($int_num1 * $int_num2)."\n";
// 割る
echo $int_num1 / $int_num2,PHP_EOL;
var_dump($int_num1 / $int_num2)."\n";
// 割った余り
echo $int_num1 % $int_num2,PHP_EOL;
var_dump($int_num1 % $int_num2)."\n";
比較演算子
// 変数など2つを比較する条件式を書くことができる
// 補足
== // 同じかどうか
=== // 型までチェック
論理演算子
// 比較する条件式は複数でもOK
// 複数の場合は「かつ」なのか「または」なのか演算子をつける
&& // かつ
|| // または(パイプライン2つ)
! // ではない(じゃない)
// sample code 2
echo "----------",PHP_EOL,"sample code 2",PHP_EOL,"----------",PHP_EOL;
// 条件式とboolean(論理型)
// 初期値がfalseである論理型の変数を宣言
// sample code 2で宣言した2つの変数を足した結果が偶数であれば、論理型の変数にtrueを代入
// 変数を宣言
$flag = false;
if(($int_num1 + $int_num2) % 2 == 0){
$flag = true;
}
// 確認のためフラグの状態を出力
var_dump($flag);
echo "----------",PHP_EOL,"sample code 3",PHP_EOL,"----------",PHP_EOL;
// sample code 3 のboolean型の変数を利用した条件式を作成し、以下のように出力
// ・偶数の場合「even number」
// ・奇数の場合「odd number」
if ($flag == true) {
echo "even number",PHP_EOL;
} else {
echo "odd number",PHP_EOL;
}
// 出力結果
----------
sample code 1
----------
15
int(15)
1
int(1)
56
int(56)
1.1428571428571
float(1.1428571428571428)
1
int(1)
----------
sample code 2
----------
bool(false)
----------
sample code 3
----------
odd number