はじめに
普段、私はRailsでサーバサイドの開発をしているのですが、業務でPHPの開発をすることになりそうなので勉強をはじめました。これから何回かに渡ってPHPの入門記事を書いていこうと思います。
第1回目である今回はPHPの基礎と文字列・数値の操作について記事にします。
基本ルール
PHPの基本的なルールを説明します。非常にシンプルなのですぐ覚えられると思います。
開始と終了のタグ
PHPのコードは <?php と ?> で囲まれた範囲の中に記述します。この範囲の外に書かれたコードはPHPエンジンに無視されます。
ホワイトスペース
他の多くの言語と同じようにPHPでもホワイトスペースは無視されます。PHPの特徴として print などの言語のキーワードと値との間にスペースが無くても動作します。
大文字と小文字の区別
PHPでは言語のキーワードと関数名は大文字と小文字を区別しません。
1 2 3 4 5 6 | <?php // 以下の全ては同じ print "sample"; PRINT "sample"; pRiNT "sample"; ?> |
コメント
PHPでのコメントは // や # を使った1行コメントと、 /* と */ で囲む複数行コメントがあります。なお、1行コメントでは # ではなく // を用いる方が良いようです。
1 2 3 4 5 6 7 8 9 10 | <?php // 1行コメント # これも1行コメント print "hoge"; // これもOK /* 以下の行は実行されない print "hogehoge"; print "fuga"; */ ?> |
変数の定義
PHPでは変数名の先頭に $ をつけて定義します。PHPの変数は ++ と — でインクリメント、デクリメントできる他、 += と .= で数値を加算して代入、文字列を結合して代入が行えます。
文字列の操作
PHPでの文字列の定義とよく使う操作について説明します。
文字列の定義
PHPの文字列ではsingle quoteで囲む場合とdouble quoteで囲む二種類があります。また、文字列中に特殊文字を含める場合は、他の多くの言語と同じようにエスケープ文字(/)を用います。
single quoteで囲った文字列とdouble quoteで囲った文字列の違いは扱える特殊文字の種類と変数の扱いです。double quoteで囲った場合は \n などの特殊文字を扱うことができ、さらに、変数が展開されます。
1 2 3 4 5 6 7 8 9 10 11 | <?php // single quote print 'hoge hoge'; // hoge hoge // double quote $str = 'Taro Yamada'; print "Hello! $str.\nNice to meet you!"; // Hello! Taro Yamada. // Nice to meet you! ?> |
PHPでは上記の他にヒアドキュメントでも文字列を定義できます。
1 2 3 4 5 6 7 8 9 10 | <?php print <<<HTML <html> <head><title>sample</title></head> <body> <p>Hello, World!</p> </body> </html> HTML; ?> |
無駄なスペースを削除する
文字列の先頭と末尾のホワイトスペースの削除は trim() 関数で行えます。
1 2 3 4 | <?php print trim(' hoge hoge '); // hoge hoge ?> |
長さを調べる
文字列の長さは strlen() 関数で調べられます。
1 2 3 4 5 6 7 | <?php $str = 'hoge hoge'; if (strlen($str) != 4) { print $str; } // hoge hoge ?> |
比較する
文字列同士の比較は == で行います。また、 strcasecmp() 関数を使うことで、大文字と小文字を区別しない比較も行えます
1 2 3 4 5 6 7 8 9 10 11 | <?php $str = 'Hoge'; if ($str == 'hoge') { print $str; } // if (strcasecmp($str, 'hoge')) { print $str; } // Hoge ?> |
フォーマット
printf() 関数を使用することで、様々なフォーマットで文字列を出力できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // 小数の表示 $price = 51; $tax = 0.08; printf('Tax is %.2f.', $price * $tax); // Tax is 4.08. // パディング $year = 2018; $month = 1; $day = 1; printf('%d/%02d/$02d', $year, $moth, $day); // 2018/01/01 // 符号の表示 $plus = 10; $minus = -5; printf('%+d ~ %+d', $minus, $plus); // -5 ~ 10 ?> |
大文字、小文字の変更
文字列を全て小文字にするには strtolower() 関数を使います。逆に、文字列を全て大文字にするには strtoupper() 関数を使います。
1 2 3 4 5 6 7 | <?php $str = 'Hello, World!'; print strtolower($str); // hello, world! print strtoupper($str); // HELLO, WORLD! ?> |
また、 ucwords() 関数を使うと文字列内のそれぞれの単語の1文字目を大文字に変換します。
1 2 3 4 5 | <?php $str = 'taro yamada'; print ucwords($str); // Taro Yamada ?> |
部分的な抽出
文字列の部分的な抽出は substr() を使います。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $str = 'abcdefghijklmn'; // 3文字目から5文字を表示 print substr($str, 2, 5); // cdefg // 後ろから7文字目から3文字を表示 print substr($str, -7, 3); // ghi // 後ろから5文字目から最後まで表示 print substr($str, -5); // jklmn ?> |
置換
文字列の置換は str_replace() 関数を使います。
1 2 3 4 5 | <?php $str = '090 1234 1234'; print str_replace('12', '98', $str); // 090 9834 9834 ?> |
結合
PHPでの文字列の結合は + ではなく . で行います。
1 2 3 4 5 6 | <?php $first_name = 'Taro'; $last_name = 'Yamada'; print 'Hello! ' . $first_name . ' ' . $last_name . '.'; // Hello! Taro Yamada. ?> |
数値の操作
他の言語と同じように、PHPでは整数と浮動小数点数を扱えます。PHPでの計算方法を説明します。
計算
PHPでは四則演算と剰余計算ができます。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php print 1 + 1; // 2 printf('%.2f', 10 - 3.55); // 6.45 print 30 / 6; // 5 print 4 * 6; // 24 print 70 % 6; // 4 ?> |
さいごに
PHP入門の1回目として、基本ルールと文字列、数値の操作について紹介しました。