昨年から始めたプログラミング独学。HTML、CSS、Javascriptの基礎学習は終えたので、今年の目標は「WordPressテーマの自作」として進めていきます。
- プログラミング独学 2月の目標「PHP基礎修得」
- プログラミング独学 2月の進捗状況
- 2/2…「#04 コメントを使ってみよう」
- 2/3…「 #05 変数を使ってみよう 」
- 2/10…「#06 文字列の扱いを見ていこう」
- 2/11…「#07 ヒアドキュメントを使ってみよう」
- 2/12…「#08 数値の計算をしてみよう」
- 2/15…「#09 変数を使った計算をしてみよう」
- 2/17…「#10 定数を使ってみよう」
- 2/18…「#11 データ型を整理しよう」
- 2/18…「#12 変数の型を調べてみよう」
- 2/21…「#13 ifで条件分岐をしてみよう」
- 2/21…「#14 比較演算子と真偽値について見ていこう」
- 2/22…「#15 論理演算子を使ってみよう」
- 2/22…「#16 switchで条件分岐をしてみよう」
- 2/23…「#17 switchを使いこなしてみよう」
- 2/23…「#18 forを使ったループ処理をしよう」
- 2/25…「#19 whileを使ったループ処理をしよう」
- 2/25…「#20 continue、breakを使ってみよう」
- 2/26…「#21 関数で処理をまとめてみよう」
- 2/26…「#22 引数を使ってみよう」
- 2/27…「#23 returnで値を返してみよう」
- 2/27…「#24 変数のスコープを理解しよう」
- 2/28…「#25 無名関数を作ってみよう」
プログラミング独学 2月の目標「PHP基礎修得」
ドットインストール「 詳解PHP 基礎文法編 (全34回) 」をクリアします。
1月後半、ほとんどプログラミングに時間を使えなかったので、超ペースダウンさせて、着実に終わらせます。
ちなみに3月は「MySQL入門 基礎編 (全27回)」、4月は環境構築、「WordPress入門 (全23回)」の予定です。
プログラミング独学 2月の進捗状況
2/2…「#04 コメントを使ってみよう」
コメントの付け方はHTML/CSSと似てる。「// コメント」か「# コメント」で行末までがコメント扱い。もしくは「/* コメント */」で複数行もコメント化OK。VSコードのショートカットは同じでWinなら「Ctrl+/」
2/3…「 #05 変数を使ってみよう 」
変数を使う時は「$」。「$name = ‘taguchi’;」。変数と文字列を連結させたい時はピリオドを使う。「echo ‘Hello ‘. $name .PHP_EOL;」
2/10…「#06 文字列の扱いを見ていこう」
シングルクォーテーションを文中に使いたい時はダブルクォーテーションで囲む。その場合は変数を中に組み込むことができる。ダブルクォーテーションを文中で使いたい時は、その手前にバックスラッシュ「\」をつければOK。
2/11…「#07 ヒアドキュメントを使ってみよう」
「$text = <<< ‘EOT’」で長文などを改行や字下げを保持したまま「text」に代入できる。EOTは終端記号と呼び何でもよい。ここではEOT=ent of textとしている。必ず終わりにEOT;で閉じる。シングルクォーテーションだと長文内に変数は置けない(ナウドキュメント)。ダブルクォーテーションやクォーテーション無しだと長文内にも変数を置ける(ヒアドキュメント)。
2/12…「#08 数値の計算をしてみよう」
「echo 10+3 . PHP_EOL;」などで計算ができる。四則演算である「+」「-」「*」「/」はもちろん、割った時の余りの数字を示す「%」や、べき乗「**」も使える。数学とおなじで計算を優先させたい時は丸括弧で囲む。PHPの特性として数値っぽい文字列は計算してくれちゃうというのがある。「2+’5’」を「7」として出力する。
2/15…「#09 変数を使った計算をしてみよう」
変数「$price」を使って計算してみる。「$price +=100;」は変数に100を足す意味、「$price ++;」で1を足す意味になる。
2/17…「#10 定数を使ってみよう」
あとから変更されたくない値に名前をつけたい時は定数を使う。「define()」か「const」。「define(‘NAME’ , ‘名前’);」、「const NAME = ‘名前’;」。定数は慣例で大文字にする。※ターミナルクリアは「Ctrl+L」
2/18…「#11 データ型を整理しよう」
PHPで扱えるデータの型は以下の通り。
- 文字列(string)
- 整数(int)
- 浮動小数点数(float)
- null
- 真偽値(bool)
- 配列(array)
- オブジェクト(object)
2/18…「#12 変数の型を調べてみよう」
「var_dump()」でその変数の型を調べられる(キャストという方法)。数値を文字列として扱いたい時などは、型を指定することもできる。「$a = (string)1.3」
2/21…「#13 ifで条件分岐をしてみよう」
「if (条件) {動作}」と書く。{ }で囲んだ部分をブロックと呼び、if文の締めには「;」はいらないので注意。条件は例えば「ある変数の値がx以上ならこのメッセージを表示(echo)する」など。
if文に続けて「else {動作}」を付けると「if文の条件以外の時にこの動作をさせる」とできる。また「elseif (条件) {動作}」だとまた別の条件を付けられる。
2/21…「#14 比較演算子と真偽値について見ていこう」
「>=」は「以上」などは算数で習った通り、「 === 」は「等しい」、「 !== 」は「等しくない」を覚える。条件を指定する際はこれらの比較演算子による条件式が入る場合もあれば「$x」などの単一の値が入る場合もある。
いずれにせよこれらは真偽値である「true」「false」で識別される。「false」と識別されるのはfalse、数列や文字列としての0、「’ ‘」(空文字)、null、「[ ]」(空の配列)。これら以外は全部「true」となる。
2/22…「#15 論理演算子を使ってみよう」
複数の条件を設定する際に論理演算子を使うと便利。「&&」は「なおかつ」、「||」は「もしくは」、「!」は「~ではない」。
「!」の使い方…「if(!$x){動作}」とすると$xの評価がtrueでない場合に動作をさせる、となる。
2/22…「#16 switchで条件分岐をしてみよう」
条件ごとに結果を変えたい場合、elseifを続けて書いていくよりもswitchで書いたほうがスッキリさせられる。
例)信号機の色により指示を変える
$signal=’red’;
switch($signal){
case ‘red’:
echo ‘Stop!’ . PHP_EOL;
break;
case ‘yellow’:
echo ‘Caution!’ . PHP_EOL;
break;
case ‘blue’:
echo ‘Go!’ . PHP_EOL;
break;
}
2/23…「#17 switchを使いこなしてみよう」
- 複数の条件を並べて書きたい時は「case ‘ ◎◎ ‘ :」を2行続けて書けばOK。それで「◎◎もしくは◎◎の時」となる。
- 指定した条件群のどれにも当てはまらない時の動作を指定するには「default:」を使えばOK。
- switch文を使う時は、「case」ごとに「break」で閉じるのを忘れないように注意!
2/23…「#18 forを使ったループ処理をしよう」
同じ処理を繰り返すループ処理。繰り返す回数が決まっている時はfor文を使うことが多い。if文と同様、締めの「;」は不要。
for($i = 1; $i <=5; $i++){ 動作 }
繰り返し回数を示す「カウンター変数」は慣例的に「$i」。これはカウンター変数が1から5の間の時は、変数を1ずつ増やしながら以下の動作をする、という意味になる。
2/25…「#19 whileを使ったループ処理をしよう」
ある条件時に動作を繰り返したい時while文を使う。例えばRPGで毒を受けてしまい、HPが15ずつ減っていく動作はこうなる。
$hp=100;
while($hp>0){
echo “HP : $hp” . PHP_EOL;
$hp -=15;
}
これでHPがなくなるまで-15が繰り返される。ただし最初からHPがない時は何の動作も起こらない。
1回は動作を起こして、その後条件を満たしているなら繰り返す、としたい場合は「do{動作}while(条件);」という文を使う。この時の末尾の「;」は必要なので注意。
2/25…「#20 continue、breakを使ってみよう」
forやwhileで繰り返し動作をさせてる時に、特定の場面でだけ動作をスキップさせるには「continue」、止めるには「break」を使う。
例えばfor文内でifを使い条件を分岐させる。「if($i ===4){continue}」や「if($i%3 ===0){continue}」など。
2/26…「#21 関数で処理をまとめてみよう」
「function 関数名(){動作}」で動作をまとめて関数化しておくと、各所に「関数名();」で同じ動作を展開でき、修正もしやすい。
functionを使って関数を設定する時の「;」は要らないが、関数を置く時は 「;」 が要るので注意。
2/26…「#22 引数を使ってみよう」
「ひきすう」と読む。上のレッスンで空にしていた丸カッコに入れて使う。functionの文の()内に「$message」などを入れて、{}内の動作にも$messageを仕込む。(これを仮引数と呼ぶ)この時に「$message = 値」としてデフォルト値を設定しておくこともできる。
その後、関数を置く時の()内にはその場面で$messageに代入したい値を入れる。(これを実引数と呼ぶ)
2/27…「#23 returnで値を返してみよう」
関数の{}内で「return 処理」とするとその処理結果を関数に返して動作終了とできる。これで関数結果同士を足し算できたりする。
returnを使うとそれより下に書いた処理は実行されないので注意。
2/27…「#24 変数のスコープを理解しよう」
変数の有効範囲をスコープと呼ぶ。関数の中だけで有効=ローカルスコープ、関数の外全てで有効=グローバルスコープと呼ぶ。
関数の処理の中で変数を使いたい時は、①処理の中に直接変数を設定する、②関数の外にある変数を「global 変数名;」で呼び出す。
2/28…「#25 無名関数を作ってみよう」
関数自体を変数に入れられる。「変数 = function (仮引数){処理};」となり、無名関数またはクロージャーと呼ぶ。functionのあとにスペース、{}を閉じたら;が必要なので注意。