※PHP初心者へ向けた内容となりますので、ある程度HTMLの知識がある方を対象とした内容になります。予めご了承ください。
Webプログラミングを学ぶ方はHTML、そしてCSSを学び、そしてJavascriptやPHPという順に学んでいくひとが多いでしょう。
私も実際に、似たような手順で学んでいきました。
中には、HTMLとCSSの知識はあるからサイトは作れるけど、動的な機能は取り入れられずレガシーとされる部分で停滞してしまう人が多いです。
そしていざ業務やフリーランスで活かそうと思ったときに、太刀打ちできないという状態に陥ります。
今回はそういった「プログラミングの本当の入口」で立ち止まってしまっている人へ向けて、理解を深めていくために必要な実践的な手順を、PHPに焦点を絞って解説していきます。
超実践的なステップですので、順にしっかりと取り組んでいけば、まったくPHPに理解がない状態からでも、早い段階で実践的なサイトやアプリケーションに触れられるようになっていくでしょう。
ゆっくり、着実に学んでいきたいという人は、参考程度にお楽しみください。
超実践的ステップ
スクールや書籍などで学んだ人は、ある程度手順に沿って学んでいきますね。
しかし早くから実践に触れる人は「その時に必要だったこと」から学んでいきます。
正しい手順で知ることは、たしかに間違いではありませんが、それを細分化してしまうことはかえってマイナスになり兼ねません。
ハードルが多ければ多いほど、そのぶん挫折するタイミングが多いということです。
ではどの部分にウェイトを置いて、どういった手順で進めてば良いのか。それに必要となるのが以下の3つです。
変数
配列
関数
今回は最初のステップになる変数について説明していきます。
変数
変数とは箱のようなもの
こういった説明がほとんどでされています。実際にそう表現することに間違いはありませんが、いまいち実感が掴めないものです。
なので、実際に見て動かしてみるのが手っ取り早いですね。
基本
HTMLで作られたサイトで考えて見ましょう。
<!DOCTYPE html>
<html lang="jp" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<header>
電話番号:090-0000-0000
</header>
<main>
電話番号:090-0000-0000
</main>
<footer>
電話番号:090-0000-0000
</footer>
</body>
</html>
ヘッダー部分とフッター部分にお問い合わせ先の電話番号を入れています。
現在「090-0000-0000」という番号を使用していますが、もしこれが「080-0000-0000」と変更になった場合はどうでしょうか?
毎回3箇所の番号を変更してあげなければいけませんね。
そういった手間を省くために変数があります。
<?php $tel = '090-0000-0000'; ?>
<!DOCTYPE html>
<html lang="jp" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<header>
電話番号:<?php echo $tel; ?>
</header>
<main>
電話番号:<?php echo $tel; ?>
</main>
<footer>
電話番号:<?php echo $tel; ?>
</footer>
</body>
</html>
一番上で「$tel = ‘090-0000-0000’」というコードが追加されましたね。
これは【tel】という変数に【090-0000-0000】という文字列を入れていることになります。
※PHPでは変数だということを表すために、最初に$(ドルマーク)を付けます。
※PHPのコードは原則「<?php ?>という囲いの中に記述する必要があります。
※変数に入っている文字列をHTMLで表示させたいときにはechoと手前に付けてあげれば書き出してくれます。
こうしていれば、電話番号が変更になっても一番上を変更するだけでページ内全てに反映されるので管理やチェックが楽になりますね。
他にも、HTMLタグを入れることも可能です。
<?php
$ad = '<div class="box">広告だよ!</div>';
?>
こうしておけば、この広告を貼り付けたい場所に先ほどのように変数を書き出しておけば表示することが出来ます。
これだけの記述量ではわざわざ書いても問題ないかも知れませんが、もっと長い文であったり、構造的にいくつもタグが入っている物を使い回す場合は楽になります。
そして何より、更新をするときに楽ですね。クラス名を追加しようと思っても、変数に入れている箇所だけ変更すれば、ページ内全てに反映させることが出来ます。
※変数に入れる際、文字列の場合はシングル(またはダブル)クォーテーションで囲っておきましょう
※数字を入れる時は囲わなくても大丈夫です
変数とは、最初に準備しておけばあとは使い回しができる便利ボックスです。
電話番号やメールアドレスなど、他にも何度も出てくるものはこうやって使ってみると、とっても更新が楽になります。
応用
さて、変数へ入れて複数の場所で使うということを覚えました。では少しひねって応用的な使い方をしてみましょう。
先ほどタグを変数に入れられることが分かりました。では、そのタグを入れた変数の中で、変数に入れている電話番号を使いたい時はどうすれば良いでしょうか?
<?php
$tel = '090-0000-0000';
$telbox = '<div class="tel-box">'.$tel.'</div>';
?>
上記のようにすれば、$telboxの中に、変数に入れてる電話番号を更に入れることができます。
文字列の終わりはシングル(またはダブル)クォーテーションになるので、そこにつなげるために.(ドット)を付けて変数をつなげてやり、その後再度タグ(文字列等)がくるのであれば、そこからをシングル(またはダブル)クォーテーションで囲い、再度ドットを使ってつなげてやればよいのです。
そして、注意して置かなければいけないのは順番です。
悪い例
<?php
$telbox = '<div class="tel-box">'.$tel.'</div>';
$tel = '090-0000-0000';
?>
逆になってしまうと、上から順番に処理をするため、$telbox内で使おうと思っている$telが見つからないという自体が発生してしまいます。これはエラーとなります。
変数の中でも変数が使えることがわかりました。こうなれば、活躍の場はどんどん増えていきます。
また、変数は書き換えることもできます。
<?php $tel = '090-0000-0000'; ?>
<!DOCTYPE html>
<html lang="jp" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<header>
電話番号:<?php echo $tel; ?>
</header>
<main>
<?php $tel = '080-0000-0000'; ?>
電話番号:<?php echo $tel; ?>
</main>
<footer>
<?php $tel = '070-0000-0000'; ?>
電話番号:<?php echo $tel; ?>
</footer>
</body>
</html>
こうすれば、ヘッダーでは090、メインでは080、フッターでは070の番号が表示されます。
使い方によっては変数の中身を書き換えるほうが良かったり、別で用意をするほうが良いケースなど様々なので、実際に試して良し悪しを見極めていくと良いでしょう。
変数だけとっても、ただHTMLで記述するだけとは大きく作業効率が上がります。
まずはしっかりと変数の使い方を実践で理解を深めておくことが大切です。
細かな知識は後回し
intやstringなどと言った変数の型、参照や値渡しなどという細かな知識も変数を理解する上では確かに必要です。
ですが、これを最初の段階から無理に覚える必要は有りません。
なぜなら、実践で使っているうちにこういった問題点に必ず直面するからです。
まずはざっくりと知り、そして実際に動くということを実感してみるほうが大切です。そうなれば、そういった壁に直面したときにより理解がしやすくなります。
勉強から実践へ
少し「勉強」という部分にも触れておきましょう。
スクールや書籍で勉強することは大変素晴らしいことです。基本知識が乏しい状態で進んでいくと、いざ実践的に何かを作ろうとしたときにつまずき、挫折してしまうことがほとんどです。
しかし、勉強だけにウェイトを置いてしまうのも実は大きな問題があります。
ある程度知識がある状態で実践に望むと、自分が今できることしかやらなくなってしまいがちです。
これは「自分はこれを学んでいないからできない」という潜在意識が勝手にあなたのスキルアップのチャンスを摘み取って閉まっているのです。
勉強することは大切です。しかし、いざ実践で本当に役立つのは「調べる」ということなのです。
実践では「調べる」
いざ何かを作るとなったとき、まずは「何を作るか」が先にきます。自主制作の場合は、最初から決めておいても壁に直面すると諦めてしまったり、妥協するポイントを見つけてしまいがちです。
ですが、実際に仕事を受注することになればそうはいきません。
勉強しておくことは確かに実践でも役立ちますが、100%を勉強したことで対応しようとなれば、いつまで経っても勉強から実践に移行することができません。
なので、勉強はあくまで自らのベースとして、実践で壁に直面したときには調べることが必要になります。
勉強をする上でも、もちろん調べるタイミングは必ずでてくるはずですが、その比重のおき方が大きく異なります。
なので、できるだけ早く「調べなければならない実践」に手をつけることをオススメします。
仕事を受注するのがまだ難しい方であれば、自分向けのサービスを作ってみてください。それがポートフォリオで終わってしまうものではなく、それが将来お金に変わるものを想定していれば、実践にかなり近い学びが得られます。
まとめ
プログラミングにおいては初歩の初歩となる変数について説明していきました。
読んで「なるほど」と思った人はすぐに使ってみてください。読んで満足するだけでは、多くのことがリターンがほとんど得られません。
次は第2ステップの「配列」についてです。今回の内容が身についていれば、必ず次のステップもすぐに自分の物にできるはずです。
PHPがどういった言語か、なんとなく理解できて実践で使えるようになれば、ぜひ書籍を使った学習も取り入れてみてください。最初から勉強に走るよりも、急激に吸収力が高くなります。
「実践 ⇒ 学習」という手順を踏めば、開発を重ねるたびに可視性が良く無駄の少ないコーディングができるようになりますよ。