Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

PHP入門に最適なサンプルコードをまとめています。

PHPとは

PHPはオープンソースの汎用スクリプト言語で、特にWeb開発に適しています。HTMLにロジックを埋め込むことができます。

参考)PHP: PHP とはなんでしょう? – Manual

データベースとの親和性も高く、特にLAMPと略される「Linux、Apache、MySQL、PHP」の組み合わせで構築されたシステムは実績多数です。

【関連記事】
PHPでデータベース(MySQL)に接続する方法

ただし、HTMLにコードを埋め込まれたPHPロジックを修正することで、デザインが崩れてしまうことがあります。そのため、大きなシステムではテンプレートエンジンなどを使ってデザイン部分とPHPのロジック部分を分離して管理するケースもあります。

PHP入門 コピペで実行できるサンプルコード集

PHPのサンプルコードを実行してみましょう。以下のコードは、変数$aに”Hello”、$bに”world”を代入して、echo文で表示するサンプルです。

  1. <html><body>
  2. This is test.
  3. <?php
  4.  
  5. $a="Hello";
  6. $b="world";
  7.  
  8. echo "$a, $b";
  9.  
  10. ?>
  11.  
  12. </body></html>

「<?php」と、「?>」で囲んだ部分がphpコードとして解釈されます。それ以外はHTMLとして扱われます。

phpが動作する環境を構築するには、最低限でもウェブサーバサービスと、phpモジュールをインストールする必要があります。ここでは、オンラインでphpコードの実行をシミュレートできるサイトを使って、サンプルコードをコピペして実行してみましょう。

Online PHP editor | output for 3uQEn

上記のページを開き、サンプルコードをコピペしてeval()ボタンをクリックします。必要に応じてプルダウンメニューでPHPのバージョンを指定することができます。

コピペしたコードは、自動的に公開されるため、業務用のコードなど機密性の高い情報は使用してはいけません。あくまで簡易的な学習用として使用しましょう。

実行すると、以下が表示されます。

PHPでは、改行の区切り文字に;(セミコロン)を記述します。echoは、文字列を表示するための命令で、ダブルクォーテーション内に変数を指定することが可能です。

<?php ~ ?> 以外の行は、HTMLとしてそのまま表示されます。

なお、実際にサーバに配置する際には、ファイル名の拡張子は.phpとする必要があります。

四則演算の結果を、printfでフォーマットして出力する

四則演算と剰余の結果を表示するサンプルコードです。

  1. <?php
  2. printf( "3*4=%d\n", 3*4); //乗算
  3. printf( "8/2=%d\n", 8/2); //除算
  4. printf( "1+5=%d\n", 1+5); //加算
  5. printf( "7-3=%d\n", 7-3); //減算
  6. printf( "10%%3=%d\n", 10%3); //剰余
  7. ?>

実行するとこうなります。

  1. 3*4=12
  2. 8/2=4
  3. 1+5=6
  4. 7-3=4
  5. 10%3=1

printfは、フォーマット文字列(第一引数)に従って、数値、文字列、変数を表示する関数です。フォーマット文字列内で%を表示するには、%%と記述します。

また、\nは改行をあらわします。

文字列の操作 連結と、sprintfによる整形、<br>タグの付加

  1. <?php
  2. $a="Hello";
  3. $b="world";
  4.  
  5. $c=$a.$b;
  6. printf("%s+%s=%s\n", $a, $b, $c);
  7.  
  8. $d=sprintf("%s, %s", $a, $b);
  9. printf("%s\n", $d);
  10.  
  11. $e=nl2br( sprintf("%s\n",$d) );
  12. printf("%s\n",$e)
  13. ?>

実行するとこうなります。

  1. Hello+world=Helloworld
  2. Hello, world
  3. Hello, world<br />

文字列同士を連結するには、「.」(ドット)演算子を使用します。

$c=$a.$b という表現は、$aと$bを連結した結果を$cに代入するという意味になるんですね。同様に、以下の表現も可能です。

sprintfは、第一引数のフォーマット文字列に、変数や値を当てはめる関数です。また、nl2brは文字列中の\n(改行)を<br />に変更する関数です。

配列 array()で初期化 連想配列の初期化には=>を使用

PHPでは、a[0]、var[31]のような指定のほか、a[‘col1’],dat[‘para’]のようにカッコ内の添字指定に文字列を指定できる連想配列の使用が可能です。

  1. <?php
  2. $array=array(1,2,3,4,5);
  3. printf( "\$array[0]=%s\n", $array[0]);
  4. printf( "\$array[1]=%s\n", $array[1]);
  5. printf( "\$array[2]=%s\n", $array[2]);
  6.  
  7. $array2=array('abc',1,2+3);
  8. printf( "\$array2[0]=%s\n", $array2[0]);
  9. printf( "\$array2[1]=%s\n", $array2[1]);
  10. printf( "\$array2[2]=%s\n", $array2[2]);
  11.  
  12. $array3=array('hello'=>'world', 'apple'=>'りんご', 'police'=>110);
  13. printf( "\$array3['hello']=%s\n", $array3['hello']);
  14. printf( "\$array3['apple']=%s\n", $array3['apple']);
  15. printf( "\$array3['police']=%s\n", $array3['police']);
  16.  
  17. $array3['test']="テスト";
  18. var_dump($array3);
  19. ?>

実行するとこうなります。

  1. $array[0]=1
  2. $array[1]=2
  3. $array[2]=3
  4. $array2[0]=abc
  5. $array2[1]=1
  6. $array2[2]=5
  7. $array3['hello']=world
  8. $array3['apple']=りんご
  9. $array3['police']=110
  10. array(4) {
  11. ["hello"]=>
  12. string(5) "world"
  13. ["apple"]=>
  14. string(9) "りんご"
  15. ["police"]=>
  16. int(110)
  17. ["test"]=>
  18. string(9) "テスト"
  19. }

array()を使用することで、配列の初期化ができます。単に$a=array()と指定すると、空の配列になります。

$array2のように、配列には文字列、数値の混在が可能です。array()内で計算式や文字列操作関数を使用することもできます。

$array3は連想配列の例です。「=>」を使って連想配列の初期化をおこないます。連想配列に追加を行うには、単に$array3[‘test’]=”テスト”; のように記述することで可能となります。

var_dump()は、変数や配列の中身を出力する関数です。デバッグ用の情報を出力するのに最適です。なお、ウェブサーバ経由で出力を見ると、改行部分がくっついて表示されるため、以下のように<pre>というHTMLタグで囲んで改行をそのまま表示すると見やすくなります。

  1. print "<pre>";
  2. var_dump($array3);
  3. print "</pre>"

printは、指定した文字列を表示します。

ループ(foreach) asの後の引数に&をつけると、参照渡しになる

  1. <?php
  2. //$array[0]~$array[5]までループ
  3. $array=array(0,1,2,3,4,5);
  4. foreach( $array as $val ){
  5. print $val."\n";
  6. }
  7.  
  8. //配列の書き換えができない
  9. foreach( $array as $val ){
  10. $val=0;
  11. }
  12. var_dump($array);
  13.  
  14. //&をつけると、参照先の配列書き換えが可能
  15. foreach( $array as &$val ){
  16. $val=0;
  17. }
  18. var_dump($array);
  19. ?>

実行すると、こうなります。

  1. 0
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. array(6) {
  8. [0]=>
  9. int(0)
  10. [1]=>
  11. int(1)
  12. [2]=>
  13. int(2)
  14. [3]=>
  15. int(3)
  16. [4]=>
  17. int(4)
  18. [5]=>
  19. int(5)
  20. }
  21. array(6) {
  22. [0]=>
  23. int(0)
  24. [1]=>
  25. int(0)
  26. [2]=>
  27. int(0)
  28. [3]=>
  29. int(0)
  30. [4]=>
  31. int(0)
  32. [5]=>
  33. &int(0)
  34. }

foreach($array as $val)とすると、配列$arrayの内容をループしながら順番に$valに代入して処理をおこないます。

このとき、$valに対して値を代入しても、配列$arrayには影響はありません。しかし、foreach($array as &$val)というふうに$valの前に&(アンパッサンド)をつけることで、「参照渡し」となり、$valはarrayの格納先の実体を指すことになります。そのため、$valを書き換えると、配列の内容が書き換わります。

if文 ループ中での条件分岐

配列$arrayをループしながら、配列の値を表示し、if文で値を判定して値によって異なるメッセージを表示するサンプルコードです。

  1. <?php
  2. $array=array(0,5,8);
  3. foreach( $array as $val){
  4. printf( "値は、%dです。\n",$val);
  5. if( $val > 5 ){
  6. print "5より大きいです\n";
  7. } else {
  8. print "5以下です\n";
  9. }
  10. }
  11. ?>

実行するとこうなります。

  1. 値は、0です。
  2. 5以下です
  3. 値は、5です。
  4. 5以下です
  5. 値は、8です。
  6. 5より大きいです

elseifを用いることで、分岐条件を追加していくことが可能です。

コメント // は、phpタグ内でだけ有効 複数行コメントは、/* */で囲む

PHPでは、//をつけると行末までコメント扱いになり実行されません。<?php ~ ?>タグ外ではHTMLとして解釈されるため、//をつけてもそのまま表示されます。

  1. //phpタグ外では無効
  2. <!-- HTMLタグ内でのコメント記述はこうする -->
  3. <?php
  4. print "STEP1\n";
  5. //print "STEP2\n";
  6. print "STEP3\n";
  7. /*
  8. print "STEP4\n";
  9. 複数行のコメント
  10. print "STEP5\n";
  11. */
  12. ?>

実行するとこうなります。

  1. //phpタグ外では無効
  2. <!-- HTMLタグ内でのコメント記述はこうする -->
  3. STEP1
  4. STEP3

phpタグ内の、//をつけた行と、/* ~ */で囲んだ行は実行されませんでした。ソースコードを見やすくする目的のほか、デバッグで一時的に処理を無効化するときなどに使えます。

なお、HTMLで表示させない(コメント化)するには、<!– ~ –>で対象箇所を囲います。

日付の操作 昨日、明日、一週間後の日付を計算する方法

  1. <?php
  2. //現在の日付と時間
  3. $d=date("Y-m-d H:i:s");
  4. printf("現在、%s\n",$d);
  5.  
  6. //明日、昨日、一週間後の日付を計算
  7. $today=date("Y年m月d日");
  8. $tomorrow=date("Y年m月d日",strtotime("1 day"));
  9. $yesterday=date("Y年m月d日",strtotime("-1 day"));
  10. $afterweek=date("Y年m月d日",strtotime("1 week"));
  11. printf( "今日は%sです。\n", $today);
  12. printf( "明日は%sです。\n", $tomorrow);
  13. printf( "昨日は%sです。\n", $yesterday);
  14. printf( "一週間後は%sです。\n", $afterweek);
  15.  
  16. //指定日の一ヶ月後の日付を計算
  17. $anyday="2020-02-21";
  18. $anyday_aftermonth=date("Y-m-d",strtotime('+1 month',strtotime($anyday)));
  19. printf( "%sの一ヶ月後は、%sです。\n",$anyday, $anyday_aftermonth);
  20. ?>

実行するとこうなります。

  1. 現在、2020-02-22 03:36:14
  2. 今日は20200222日です。
  3. 明日は20200223日です。
  4. 昨日は20200221日です。
  5. 一週間後は20200229日です。
  6. 2020-02-21の一ヶ月後は、2020-03-21です。

date()は、現在の日付を指定したフォーマットに従って文字列にする関数。strtotimeを組み合わせることで、1日後、1日前、1週間後などの日数計算が可能になります。

まとめ

 

ポテパンダの一言メモ
  • PHPはウェブ開発に適したプログラミング言語で、HTMLにコードを埋め込めるのが特徴。
  • PHP入門には、オンラインでPHPコードを実行できるサイトを利用すると、インストールや設定作業が不要で簡単。
  • コピペ可能なPHPコードを実行し、コードの変更と結果の変化を確認しながら学習すると効率が良い。
  • PHPコードが実行可能なサイトでは、入力したコードが公開される可能性があるため、機密性の高いコードのコピペは避ける。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。