非エンジニアでも知らないとヤバイPHP Part10〜関数について理解しよう〜
前回はPHPの繰り返し処理について説明しました。今回はPHPの関数について説明いたします。
関数とは
PHPの関数に入る前に「関数」についておさらいしておきましょう。
皆さま、関数と聞くと何を思い浮かべますか…筆者は中学校に入学した際の数学を真っ先に思い浮かべました。数学の関数が苦手で数学に苦手意識を持った方もいるのではないでしょうか。辞書で調べてみると
「 《function》二つの変数x、yがあって、xの値が決まると、それに対応してyの値が一つ決まるとき、yはxの関数であるという。記号y=f(x)で表す。xを独立変数といい、二つ以上のこともある。また、この概念を拡張して、ある集合の各要素に他の集合の各要素を一対一で対応させる規則である写像をさすこともある。」
「コンピューターのプログラミング言語やアプリケーションソフトにおいて、ある数や文字列が入力された時、決められた処理を行い、その結果を出力する命令群のこと。※1」
と出てきます…が、正直これでは非常に分かりにくいですね。
関数の具体例1 – 自動販売機 –
関数の具体例として、自動販売機をあげてみます。飲み物、アイス、お菓子やパン、変わったものだとモツ煮お金をお金の投入口に入れて、必要金額が投入されれば、購入する商品を選択するボタンが光り、購入したい商品のボタンを押すと商品と(超過金額があれば)お釣りが返ってくるアレです。
関数 :自動販売機
引数 :入金するお金
返り値:商品とお釣り
消費されるもの:元々のお金(商品を購入する分の金額)
関数の具体例2 – 一次関数 –
次の関数の具体例として、中学校の時に習った一次関数をあげてみます。
PHPでの関数の書き方
では、簡易的ですが実際にPHPでの関数の書き方を見てみましょう。
function 関数名(){
関数の処理
}
まとめ
関数は実際にプロダクトを実装する際にはもはや必要不可欠です。実際にはフレームワークなどで使うことがメインですが、MVCモデルなどを学んでいくと必ず出てくるので楽しみにしていてくださいね。関数は考え方もプログラミングに必要不可欠なものでありとても便利な機能です。
非エンジニアでも知らないとヤバイPHP Part9〜繰り返し処理について理解しよう〜
前回はPHPの条件分岐について説明しました。今回はPHPの繰り返し処理について説明いたします。
繰り返し処理とは
「ある条件が満たされるまで、同じ処理が繰り返し実行される処理」のことを、繰り返し処理(ループ処理)と言います。PHPで繰り返し処理を実装するには、いくつか方法があります。
繰り返し処理の実装方法
具体的な実装方法として、今回は以下の4つをご紹介いたします。
- for文
- foreach文
- while文
- do{ }while( )文
for文
for文は繰り返し処理の基本となる構文です。書き方は以下の様になります。
<?php
for(開始条件 ; 継続条件 ; 繰り返し処理終了後の条件変更){
実施する繰り返し処理 ;
}
?>
for文の( )の中の区切りには「;(半角セミコロン)」を用います。これだけだと非常にわかりづらいと思うので、具体例をみていきましょう。
<?php
for($i = 1 ; $i <= 3 ; $i++){
print($i);
}
?>
この繰り返し処理では「1 2 3」と表示されます。それぞれ説明します。
開始条件:$i = 1
変数iに1を代入しています。繰り返し処理の変数にはiが使用されることが多いです。諸説ありますが、このiは「integer(整数)」や「index(索引・目盛り)」の頭文字を表しています。今回の開始条件は1としました。
継続条件:$i <= 3
変数iが3以下を表します。変数iが3を超えない限り、{}内の処理は繰り返されます。
実施する繰り返し処理:print($i)
変数iをprint関数で出力しています。
繰り返し処理終了後の条件変更:$i++
変数iに「1を加える」という条件が加わっています。この++の部分ですが
$i = $i + 1(変数への再代入:こちらをご参照)
や
$i += 1(上の式を省略化した書き方)
と同じです。
従って、$ = 3に加算されるまでは繰り返し処理は実施されます。$i++を実行して$ = 4になった時に初めて継続条件に合致しなくなります。{}の中の処理は実施されず、繰り返し処理が終了することになります。
foreach文(キーを取得しない場合)
foreach文は、配列(配列についてはこちらをご参照)に対する繰り返し処理になります。foreach文が使用できるのは、配列とオブジェクトとなります。他のデータ型に用いるとエラーになりますのでご注意ください。書き方は以下の様になります。
<?php
$array = [値1, 値2, 値3];
foreach($array(配列の変数名) as $value(配列内の要素)){
実施する繰り返し処理;
}
?>
先ほどのfor文と異なるのは、配列の変数を用意していること、()内に配列の変数名を入れること、配列内の要素($valueの部分、名称は自由に設定できます)に対して繰り返し処理が行われることです。具体的にみていきましよう。
<?php
$fruits = ["りんご" , "みかん" , "バナナ"];
foreach($fruits as $fruit){
print("好きな果物は" . $fruit . "です。");
print("今日は" . $fruit . "を食べました。");
}
?>
この繰り返し処理では「好きな果物はりんごです。今日はりんごを食べました。」「好きな果物はみかんです。今日はみかんを食べました。」「好きな果物はバナナです。今日はバナナを食べました。」という結果が表示されます。
流れとしては以下のようになります。
- 1 最初に配列の変数$fruitsを定義します。
- 2 foreach($fruits ~ は、この部分で定義した配列を取得しています。
- 3 ~ as $fruit) は、$fruitsに格納されている配列の最初の要素である「りんご」を$fruitに代入しています。
- 4 {}内の繰り返し処理が実施されます。
- 5 $fruitに代入された「りんご」の{}内の処理が実施されたら、次の配列の要素である「みかん」でも3.と4.が実施されます。
- 6 「みかん」でも3.と4.が実施されたら、次は配列$fruitsの最後の要素である「バナナ」も3.と4.が実施されます。
- 7 全ての要素に対して繰り返し処理が完了したら、終了となります。
foreach文(キーを取得する、連想配列の場合)
先ほどのforeach文では、配列にキーが設定されていませんでした。配列のキーも用意されて(連想配列になって)いて、キーも取得したい場合には次のような書き方になります。
<?php
$fruits = ["りんご" => "赤" , "みかん" =>"オレンジ" , "バナナ" => "黄"];
foreach($fruits as $key => $value){
print($key ."は" . $value . "色です。");
}
?>
こちらは「りんごは赤色です。」「みかんはオレンジ色です。」「バナナは黄色です。」と表示されます。先ほどのforeach文と比較すると「$key =>」が追加されていることがわかります。ここに配列の各要素のキーであるりんご・みかん・バナナが代入され、値の赤・オレンジ・黄は$valueに代入されます。
while文
while文でも繰り返し処理は可能です。書き方は以下のようになります。
<?php
//初期条件
while(条件式){
実施する繰り返し処理;
条件を変更する処理;
}
?>
条件式がtrueの場合に{ }内の処理が実行されます。while文は書き方にいくつか注意があります。特に注意していただきたいのは、初期条件と条件を変更する処理に関してです。具体例をいくつか見ていきましょう。
【具体例1】
<?php
$num = 1;
while($num <= 3){
print($num);
$num++;
}
?>
問題なく「1 2 3」と出力できると思います。
【具体例2】
<?php
$num = 1;
while($num <= 3){
$num++;
print($num);
}
?>
次はどうでしょう。中の繰り返し処理と条件を変更する処理の順番を入れ替えてみました。今度の結果は「2 3 4」と出力されると思います。これはwhile文の中の{}で順次処理されているからです。順を追うと
- $num = 1 は$num <= 3がtrueなので{}内の処理が実行される。
- $num++ で$numに代入されている値は2になる。
- print($num); で2が出力される。
となっています。print関数を用いる前に$numをインクリメント(1を加算)しているため、「2 3 4」となります。4に関しては3より大きいです。ですがこの4は$num = 3の時に{}内の処理に以降した後、$num++で$numに4が代入されるため、print関数を実行して4が表示されることになります。
この様に、実行の順序には注意が必要です。
【具体例3】
※こちらは処理が止まらなくなる(無限ループ)ため、実行しないでください。
<?php
while($num <= 3){
$num = 1;
print($num);
$num++;
}
?>
この場合、冒頭に書きましたが処理が止まらなくなります(11111…..)。これは初期条件として使用している$numが、while文の{}内にあることが原因です。
- 1 $numに1を代入してprint関数を実行するため、1が表示されます。
- 2 その後$num++で$numには2が代入されます。
- 3 $num <= 3がtrueです。while文が再度実行されます。{}内の最初に$num = 1;があるため、再度1が代入されます。1.の部分に戻ってしまいます。
【具体例4】
※こちらも処理が止まらなくなる(無限ループ)ため、実行しないでください
<?php
$num = 1;
while($num <= 3){
print($num);
}
?>
こちらも冒頭に書きましたが、無限ループ処理になります。while文内で条件を更新する処理の記載がありません。$num =1は変更されず、$num <= 3がtrueのままになってしまいます。
具体例を4つ挙げましたが、while文を書く際はいくつか注意していただければと思います。
do{ }while( )文
do{}while()文はwhile文とほぼ同じです。書き方は以下のようになります。
<?php
初期条件
do {
実施する繰り返し処理
} while (条件式);
?>
while文と1点違うのは、構文の構造上、先に繰り返しの処理を行ってから条件の判定を行うことです。少なくとも1回は条件の処理が実行されます。具体例を見ていきましょう。
<?php
$num = 5;
do {
print("数字は10以上です。")
} while ($num >= 10);
?>
「数字は10以上です。」と表示されたかと思います。これはdo{}内の繰り返し処理を先に1度実行してからwhile()内の条件式の判定を行なっていためです。pirnt関数が実行されたあと、$num >= 10の条件でfalseが返却されているため、そこで処理が止まります。よって、do{}while()文では、少なくとも1回は繰り返し処理が行われます。
まとめ
いかがでしたでしょうか。今回はPHPでの繰り返し処理をご紹介いたしました。
次回はPHPにおける関数を紹介していきます。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part8〜条件分岐について理解しよう〜
前回はPHPの配列について説明いたしました。今回はPHPの条件分岐(if文)について説明いたします。
条件分岐とは
条件分岐とは「ある条件が満たされる(論理値でtrueだった)かどうかによって、次に実行する処理を変化させる」ことです。PHPで記述する場合はif文という記法を用います。基本的な書き方は次の様になります。
<?php
if(条件){
条件が当てはまる場合の処理
}
?>
次から詳しくみていきましょう。
条件分岐の作成方法
具体例をみていきましょう。新しいphpファイルを用意して
<?php
$a = 1;
if($a == 1){
print('aは1です。');
}
?>
と入力してみてください。入力終了後ブラウザに表示(ブラウザの表示方法はこちら)させた場合「aは1です。」と表示されるはずです。これは$a == 1の条件式が正しい(true)ため、print関数が実行されております。ここで記入しているイコール2つ(==)ですが、論理型(true、false)を返す演算子となります。
では次に
<?php
$a = 1;
if($a == 2){
print('aは2です。');
}
?>
と入力してブラウザに再度反映させてみてください。恐らく今度は表示されないと思います。これは変数aに1が代入されている状態で、$a == 2の条件式が正しくない(false)ため、print関数が実行されなかったことになります。
if文の条件に関して(true/false)
さて、ここでif文での「条件」について説明します。この条件ですが、判定は論理型(Boolean)で実行いたします(Booleanの説明はこちら)。条件を実行した結果がtrue(正しい)の場合{ }(カーリーブラケット)の中が実行されます。条件の実行結果がfalse(正しくない)の場合、{ }の中の処理は実行されません。試しに次を実行してみてください。
<?php
$a = true;
if($a){
print('trueです。');
}
?>
「trueです。」とブラウザに表示されると思います。次は
<?php
$a = false;
if($a){
print('falseです。');
}
?>
こちらはいかがでしょう。今度は表示されないかと思います。変数aにfalseが代入されているため、if文で記載している( )内の条件はfalseとなります。
では、次はどうでしょう?
<?php
$a = false;
if($a == false){
print('falseです。');
}
?>
今度は「falseです。」と表示されるかと思います。これは、変数aにfalseが格納されていますが、if文内の条件である$a == falseは正しい(true)ですね。従って、条件式内がtrueのため、{ }内のprint関数が実行されます。
では次はどうでしょうか。
<?php
if(0){
print('条件式の中は0です。');
}
?>
こちらは…実は表示されません。これは論理型(こちら)で説明しましたが、「0(integer)」は論理値ではfalseが返却されます。従って、条件もfalseが格納され、print関数が実行されなくなります。
他にも””(空の文字列)などの論理型で説明したfalseに該当する論理型が条件式に入っている場合、if文の{ }内の処理は実行されません。
条件式がfalseでの処理(! ビックリマーク・エクスクラメーションマーク)
先ほどは条件式がtrueの時の説明をいたしました。では、条件式がfalse(true「以外」)の場合でも処理をしたい場合はどのようにすればよいのでしょうか。この場合、条件式の先頭に「!(ビックリマーク・エクスクラメーションマーク)」を入力すれば処理が実行されます(半角文字で入力してください)。
PHPでの「!」は、論理演算子の「否定」を表します。具体例を見てみましょう。
<?php
$score = 1;
if(!($score == 100)){
print("変数scoreは100ではありません");
}
?>
この場合、if文の処理は実行されます。$scoreに1が代入されているため$score == 100はfalseですが、!($score == 100)とすることで($score == 100)のfalseを「!」で否定しています。つまり!($score == 100)と記載することでここはtrueになり、if文の中のprint関数が実行されます。
条件がtrue/falseでの処理(else)
これまでは「ある条件が満たされる場合(true)」だけの処理を「!」も含めて説明いたしました。では「ある条件が満たされた場合と満たされなかった場合の処理」の2パターンの分岐をする処理はどうすればよいのでしょうか。その場合「else」を用います。基本的な書き方は次の通りです。
<?php
if(条件){
条件が満たされた場合の処理
} else {
条件が満たされなかった場合の処理
}
?>
上記の通り、条件が満たされた場合の処理の後ろに else { 条件が満たされなかった場合の処理 }を追加すればOKです。具体例を見ていきましょう。
<?php
$score = 70;
if($score >= 75){
print('scoreは75以上です');
} else {
print('scoreは75未満です');
}
?>
この場合はelse後の処理が実行されます。$scoreに70が代入されており、$score >= 75はfalseとなります。ちなみに$scoreに75以上の数値(integer)を代入すれば条件式がtrueとなり、print(‘scoreは75以上です’)が実行されます。
3つ以上の条件分岐(else if(){}else{})
さて、これまでは「条件が満たされた場合の処理の実行」「条件が満たされた場合、または満たされなかった場合」のif文をご紹介してきました。
次は「条件が3つ以上あった場合(複数条件)の条件分岐」をご紹介いたします。この場合、else if(){}else{}を用います。基本的な書き方は以下の通りです。
<?php
if(条件1){
条件1が満たされる場合の処理;
} else if(条件2){
条件2が満たされる場合の処理;
} else {
条件1も条件2も満たされなかった場合の処理;
}
?>
今回は3つの条件でご紹介しましたが、else if(){}else if(){}…と繋げることで、条件をいくつでも追加していくことが可能です。では具体例を見ていきましょう。
<?php
$score = 55;
if($score >= 80){
print('優');
} else if($score >= 70){
print('良');
} else if($score >= 60){
print('可');
} else {
print('不可');
}
?>
この場合「不可」が表示されます。今回の条件は
- 「$scoreが80以上の場合は’優’を出力」
- 「$scoreが70以上の場合は’良’を出力」
- 「$scoreが60以上の場合は’可’を出力」
- 「$scoreが上記以外の場合は’不可’を出力」
の処理が「上から順番に実行」されています(プログラミングの順次処理)。今回$scoreには55が代入されているため、$score >= 80(false)、$score >= 70(false)、$score >= 60(false)が確認された後、どの条件も満たされなかった結果、最後のelse{ }内のprint関数が実行され「不可」が表示されます。上記の場合、$scoreに80以上が代入されていれば「優」が表示されます。
条件分岐と順次処理(else if(){} else {})
では、次はいかがでしょうか。
<?php
$score = 95;
if($score >= 60){
print('可');
} else if($score >= 70){
print('良');
} else if($score >= 80){
print('優');
} else {
print('不可');
}
?>
$scoreは80以上ですが「可」が表示されます。
今回期待する挙動としては「優」の表示です。この原因は、先ほど記載したプログラミングの順次処理と関係があります。今回のif文は最初の条件に$score >= 60が表示されています。
「$score = 95は$score >=60」なので最初の処理が実行されます。if文は、条件が当てはまった段階でif文の処理が実行され「後の処理は実行されません」。従って今回の条件分岐では「可」が表示されることになります(せっかく高いscoreなのに…)。
このことから、if文を含むプログラミングの処理は「順番」を考慮する必要があることがわかります。考え方としては、条件の厳しいものから順番に処理を実行し、最後に最も条件が甘い条件を実行する様なコードを書くと、期待する挙動が返ってくることになります。
複数条件(if文の入れ子・ネスト)
さて、これまでは複数の条件分岐について説明してきました。ここでは複数の条件について説明します。例えば「東京都にお住まいの、20歳以上のお客様限定の商品」があったとします。この場合「東京にお住まい」と「20歳以上」の両方(複数)の条件を満たす必要があります。この様に複数の条件がある場合、入れ子(ネスト)を用いることで表現が可能です。入れ子の書き方は、次の様になります。
<?php
if(条件1){
if(条件2){
条件1がtrueかつ、条件2もtrueの時の処理
}
}
?>
if文の中にif文が入っていますね。この様に「ある構造の内部に同じ構造が含まれている状態」のことを入れ子(ネスト)と表現します。
条件1がtrueの時に最初の{ }の中の処理に移ります。{ }の中にif(条件2){ }があるので、今度は条件2の論理値が確認されます。条件2がtrueだった場合、if(条件2){ }の中の処理が実行されます。このように書くことで、複数条件のif文を書くことが可能です。
さて、以上を踏まえて例え話に戻ります。先程の条件に当てはまる人をあらかじめ用意する必要があるので、該当する$member変数も配列で用意いたします(配列に関してはこちらを参照)。
<?php
$member = array(
'name' => '太郎',
'gender' => '男性',
'age' => 20,
'address' => '東京都',
);
if($member['address'] == '東京都'){
if($member['age'] >= 20){
print('限定商品の購入が可能です!');
}
}
?>
この様に書くことで、「東京にお住まい」と「20歳以上」の両方(複数)の条件を設定し、論理値を確認することが可能になります。上記は両方の条件を満たすため、「限定商品の購入が可能です!」と表示されます。
入れ子構造はいくらでも中に記入することが可能です。より厳しい条件を作ることも可能ですが、あまり入れ子が多くなる(ネストが深くなる)とコードが読みづらくなるため、書き方には注意が必要です。
複数条件(かつ(&&)、または(||))
if文の入れ子構造を用いて複数条件の説明をしましたが、他の書き方を行うことで同様の表現が可能です。ここでは&&と||についてご紹介いたします。
複数条件の設定方法
- &&:かつ(and条件)
- ||:または(or条件)
&&は、「◯かつ△」に該当します。厳密に言うと「&&の左側の論理値が「true」だった時に、右側の論理値を確認し、右側の論理値を返却する。左側が「false」の場合、falseを返却する。」となります。つまり、&&の左側の論理値がfalseだった場合、その時点でfalseが返却されるので、右側の論理値は確認されません。
||は、「○または△」に該当します。こちらも厳密に言うと「||の左側の論理値が「false」だった時に、右側の論理値を確認し、右側の論理値を返却する。左側の論理値が「true」の場合、trueを返却する。」となります。つまり、||の左側がtrueだった場合、その時点でtrueが返却されるため、右側の論理値は確認されません。
&&:かつ(and条件)
では実際に&&を書いてみましょう。先程の
<?php
$member = array(
'name' => '太郎',
'gender' => '男性',
'age' => 20,
'address' => '東京都',
);
if($member['address'] == '東京都' && $member['age'] >= 20){
print('限定商品の購入が可能です!');
}
?>
こう書くと「限定商品の購入が可能です!」が表示されます。ここでは&&の左側の$member[‘address’] == ‘東京都’の論理値を判断した後、&&の右側の$member[‘age’] >= 20の論理値を確認します。両方trueのため、($member[‘address’] == ‘東京都’ && $member[‘age’] >= 20)はtrueが返却されるため、print関数が実行されます。
||:または(or条件)
では次に「65歳以上、または6歳以下の方は乗車賃免除」の乗り物があったとします。この条件をPHPで記述すると、例えば次の様に表現できます。
<?php
$member = array(
'name' => '幼稚園児',
'gender' => '女性',
'age' => 5,
);
if($member['age'] >= 65 || $member['age'] <= 6 ){
print('該当の年齢の方は、乗車賃が無料です。');
}
?>
この場合「該当の年齢の方は、乗車賃が無料です。」が表示されます。ここでは最初に$member[‘age’] >= 65の論理値が判断されます。||の左側がfalseのため、続いて||の右側の$member[‘age’] <= 6の論理値が判断されます。||の右側がtrueのため、if文の中のprint関数が実行されます。
if文を1行で書く(三項演算子 ?と:)
ここまでif文のご紹介をいたしましたが、実は条件分岐処理はif文以外の記載方法もあります。三項演算子と呼ばれる書き方を用いると表現が可能です。基本的な書き方は以下の通りです。
<?php
条件 ? 条件がtrueの時の処理 : 条件がfalseの時の処理 ;
?>
条件を書き終えたら「?(半角クエスチョン)」で区切り、?の後に条件がtrueの処理を書きます。その次に「:(半角コロン)」で区切り、:の後に条件がfalseの時の処理を書きます。具体例を見ていきましょう。
<?php
$score = 62;
$score > 60 ? print('試験に合格しました') : print('残念ながら不合格です') ;
?>
この場合、「試験に合格しました」が表示されます。条件がtrueなので、? から : までの処理が実行されます。
この三項演算子、コード量が少なくなるメリットがありますが、書き方によってはコードが理解しづらくなるデメリットもあります。あとから自分が見直した時や、他の人が見てもわかりやすいコードを心がけて、適切にコードを書きましょう。
まとめ
いかがでしたでしょうか。今回はPHPの条件分岐について紹介いたしました。具体的には以下の9つをご紹介いたしました。
- 条件分岐
- 条件分岐の作成方法
- if文の条件に関して(true/false)
- 条件式がfalseでの処理(! ビックリマーク・エクスクラメーションマーク)
- 条件がtrue/falseでの処理(else)
- 3つ以上の条件分岐(else if(){}else{})
- 複数条件(if文の入れ子・ネスト)
- 複数条件(かつ(&&)、または(||))
- if文を1行で書く(三項演算子 ?と:)
今回もかなり盛りだくさんでしたね。プログラミングは1回で覚えようとせず、繰り返し使用しながら馴染ませていってください。
この条件分岐もあらゆるところで使用することが可能です。例えば「会員制のアプリケーションを起動した時に、会員登録が終わっていない方は登録ページに飛ばす」と言ったようなプログラミングにも、今回の条件分岐が扱われております。
次回は繰り返しについて説明します。こちらも今回の条件分岐と同じく、開発に必須で非常に重要な回となりますので、ぜひご覧ください。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part7〜配列について理解しよう〜
前回はPHPのプログラムのデータ型について大まかに説明いたしました。今回はデータ型の中の「配列」に特化して説明いたします。
配列型とは
配列型とは複数の値をまとめて格納できる型となります。配列は英語で「array」という単語になります。PHPの配列を使う場合、このarrayという文字が頻繁に出てきます。
配列の作成方法
PHPの場合、配列の作成方法は大きく以下の3つがあります。
- array()を用いる
- 短縮構文[]を用いる
- $変数名[] = ‘値’;を用いる
それぞれ説明していきます。
array()
配列の最も基本的な書き方となります。PHPに組み込まれているarray()を使います。array()の括弧の中に値を格納していきます。複数の値を格納する場合「,(カンマ)」を用いて値を区切ります。作成した配列は、代入演算子を用いて変数や定数に代入していきます。
$values = array(
'値1',
'値2',
'値3',
);
print_r($values); //print_r()で配列の値の呼び出し
// Array(
// [0] => 値1
// [1] => 値2
// [2] => 値3
// )
作成した配列は、中の要素(上記の値1、値2、値3)を取り出すことも可能です。特に指定した名称(キー)をつけない場合、配列の要素(中身)に関しては0からカウントします。取り出し方法の詳細に関しては「配列のキー」で説明いたします。例えば「値2」を取り出したい場合、以下の様に記述します。
print_r($values[1]); // 値2
短縮構文[]
次に短縮構文の[]について説明します。と言っても、こちらは先に紹介したarray()を[]で書き換えた形になります。具体的な書き方は下記の通りです。
$values = ['値1' , '値2' , '値3' ,];
print_r($values);
// Array(
// [0] => 値1
// [1] => 値2
// [2] => 値3
// )
print_r($values[2]); // 値3
$変数名[] = ‘値’; を用いる
最後に$変数名[]について説明いたします。こちらは変数名の後ろに[]をつけることで、変数に対し後ろから値を格納していくことができます。
$fruits[] = 'apple';
$fruits[] = 'banana';
$fruits[] = 'orange';
print_r($fruits);
// Array(
// [0] => apple
// [1] => banana
// [2] => orange
// )
print_r($fruits[0]); // apple
配列のキー(key)
配列のキーは、配列の添字(インデックス)や連想配列のキー(後述)を指します。キーには整数と文字列を使用することができます。配列にキーを指定した場合は、そのキーを用いることでキーに対応する要素を選択することができます。書き方としては、$変数名[キー(要素番号・要素名)]と言った書き方となります。
今回はキーに[‘name’] [‘gender’] [‘age’] [‘address’]を設定してみます。
$member['name'] = '太郎';
$member['gender'] = '男性';
$member['age'] = '20';
$member['address'] = '東京都';
print_r($member);
// Array(
// [name] => 太郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// )
配列の中の特定の値を取り出したい場合、配列名(変数)の後ろに[](角括弧・ブラケット)をつけ、その中身にキーを入力します。例えば今回、太郎さんのage(年齢)である「20」を取り出したかった場合、$member[‘age’]とすることで、「20」にアクセスできます。
print_r($member['name']); // 太郎
print_r($member['gender']); // 男性
print_r($member['age']); // 20
print_r($member['address']); // 東京都
キーは省略することも可能です。省略した場合、整数のキーが自動で付与されます。付与されるキーは、既にキーが存在する場合は、キーに付与されている数字の次の数字があてがわれます。キーが存在しない場合、[0]からキーが付与されます。
ちなみにこのキーは、既に使用されているキーを再度使用すると、既に使用されているキーの値が変更されてしまうため、注意が必要です。逆に意図的に変更したい場合(例えばユーザーから入力された情報をもとにデータを上書きする場合など)は、配列のキーを指定して値を代入していく手段が使われます。
$member['name'] = '太郎';
$member['gender'] = '男性';
$member['age'] = '20';
$member['address'] = '東京都';
$member['name'] = '次郎'; //←キー['name']に'次郎'を代入(太郎を上書き)
$member[] = '大学生';
$member[] = '経済学部';
$member[1] = '商学部'; //←キー[1]に'商学部'を代入(経済学部を上書き)
print_r($member);
// Array(
// [name] => 次郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// [0] => 大学生
// [1] => 商学部
// )
配列の初期化
配列の初期化方法ですが、方法としては下記の2つがあります。
- $変数名 = array();
- $変数名 = [];
変数名に空の配列を代入しています。
$Array1 = array(); //1.の空配列を作成
$Array2 = []; //2.の空配列を作成
print_r($Array1);
// Array( ) //1.の出力結果
print_r($Array2);
// Array( ) //2.の出力結果
連想配列とは
連想配列はキーで配列の要素を指定できる配列のことを連想配列と呼びます。「 キー => 値 」という記法を用いて必要な数を ,(カンマ)で区切り、引数として渡します。先程の太郎さんの例を使うと以下のような書き方になります。
①array()を用いた場合
$taro = array(
'name' => '太郎',
'gender' => '男性',
'age' => 20,
'address' => '東京都',
);
print_r($taro);
// Array(
// [name] => 太郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// )
echo $taro[name]; //太郎
②短縮構文[]を用いた場合
$taro = [
'name' => '太郎' ,
'gender' => '男' ,
'age' => 20 ,
'address' => '東京都' ,
];
print_r($taro);
// Array(
// [name] => 太郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// );
echo $taro['gender']; //男性
③$変数名[‘キー’] = ‘値’;を用いた場合
$taro['name'] = '太郎';
$taro['gender'] = '男性';
$taro['age'] = 20;
$taro['address'] = '東京都';
print_r($taro);
// Array(
// [name] => 太郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// )
echo $taro['address']; //東京都
多次元配列とは
多次元配列は配列の中に、さらに配列が入っている状態の配列のことを多次元配列と呼びます。複数の情報を、複数にまたがって保有したい場合などに用います。実際の使い方を、短縮型とarray()型(及びキー)を例に説明いたします。
$members = [
['花子' , "女性" , 22 ],
['太郎' , "男性" , 20 ],
['幸子' , "女性" , 24],
];
echo $members[0][0] . 'さんは' . $members[0][1] . 'で' . $members[0][2] . '歳です。';
// 花子さんは女性で22歳です。
echo $members[1][0] . 'さんは' . $members[1][1] . 'で' . $members[1][2] . '歳です。';
// 太郎さんは男性で28歳です。
echo $members[2][0] . 'さんは' . $members[2][1] . 'で' . $members[2][2] . '歳です。';
// 幸子さん女性で24歳です。
$members2 = array(
array(
'name' => 'ポチ',
'gender' => 'オス',
'age' => '5',
),
array(
'name' => 'タマ',
'gender' => 'メス',
'age' => '3',
),
);
echo $members2[0]['name'] . 'は' . $members2[0]['gender'] . 'で' . $members2[0]['age'] . '歳です。';
//ポチはオスで5歳です。
echo $members2[1]['name'] . 'は' . $members2[1]['gender'] . 'で' . $members2[1]['age'] . '歳です。';
//タマはメスで3歳です。
配列の操作
配列の操作に関してもいくつか方法があります。具体的には下記の通りです。
- 1 配列の要素の追加
- 2 配列の要素の削除
- 3 配列の要素の変更
- 4 配列同士の結合
配列の要素の追加
配列に要素を追加する場合、大きく5つの方法があります。
- 1 array_push()の使用
- 2 []の使用
- 3 array_merge() の使用
- 4 array_unshift()の使用
- 5 +演算子の使用
array_push()の使用
array_push関数は1つ以上の要素を、配列の最後に追加する関数です。arrya_push関数は、関数に使用した元の配列を変更します(元の配列に追加されます)。1つだけ要素を追加することも可能ですが、1つだけ追加する場合は次に説明する[]を使用した方が関数を呼び出す負荷(オーバーヘッド)が減ります。
$fruits = ['りんご' , 'バナナ' , 'みかん' ,];
array_push($fruits , 'ぶどう' , 'もも');
print_r($fruits);
// Array(
// [0] => りんご
// [1] => バナナ
// [2] => みかん
// [3] => ぶどう
// [4] => もも
// )//元配列の$fruitsに’ぶどう’と’もも’が追加された
$sports = ['野球' , 'サッカー' , 'バレーボール' ,];
array_push($sports , ['陸上' , '水泳' ,] , ['フィギュアスケート' , 'スピードスケート' ,]);
print_r($sports);
// Array(
// [0] => 野球
// [1] => サッカー
// [2] => バレーボール
// [3] => Array(
// [0] => 陸上
// [1] => 水泳
// )
// [4] => Array(
// [0] => フィギュアスケート
// [1] => スピードスケート
// )
// )//元配列の$sportsの[3]と[4]に[‘陸上’ , ‘水泳’]と[‘フィギュアスケート’ , ‘スピードスケート’]が追加されました。
[]の使用
[]の使用は、$変数名[] = ‘値’;のところで説明した内容と重複します。変数に対し、後ろから値を格納していきます。
array_merge()の使用
array_merge関数は、merge元の配列と結合する配列を指定することで、配列同士を結合します。array_merge関数は、元の配列を変更しません。
$fruits1 = [‘りんご’ , ‘ばなな’ , ‘みかん’];
$fruits2 = array_merge($fruits1 , [‘ぶどう’ , ‘もも’]);
$print_r($fruits1);
$print_r($fruits2);
// Array (
// [0] => りんご
// [1] => ばなな
// [2] => みかん
// ) 元の配列は変更しない
// Array (
// [0] => りんご
// [1] => ばなな
// [2] => みかん
// [3] => ぶどう
// [4] => もも
// ) //’ぶどう’と’もも’が追加された
array_unshift()の使用
array_unshift関数は、1つ以上の要素を配列の先頭に加えます。array_unshift関数は、関数に使用した元の配列を変更します(元の配列に追加されます)。
$fruits1 = [‘りんご’,’ばなな’,’みかん’];
array_unshift($fruits1 , ‘ぶどう’ , ‘もも’);
print_r($fruits1);
// Array (
// [0] => ぶどう
// [1] => もも
// [2] => りんご
// [3] => ばなな
// [4] => みかん
// ) //元の配列$fruits1の先頭に’ぶどう’と’もも’が追加された
+演算子の使用
+演算子に関しては、連想配列で使用可能です。キーと値を指定している場合、+演算子を用いて配列に値を追加していくことが可能です。+演算子では、元の配列を変更しません。
$array1 = [‘りんご’,’ばなな’,’みかん’];
$array2 = $array1 + [3 => ‘ぶどう’];
$array3 = $array1 + [‘もも’];
print_r($array1);
print_r($array2);
print_r($array3);
// Array (
// [0] => りんご
// [1] => ばなな
// [2] => みかん
// ) //元の配列は変更されない
// Array (
// [0] => りんご
// [1] => ばなな
// [2] => みかん
// [3] => ぶどう
// ) //ぶどうが追加された
// Array (
// [0] => りんご
// [1] => ばなな
// [2] => みかん
// ) //キーを指定していない’もも’は追加されない
配列の要素の削除
配列から要素を削除する方法は、大きく4つの方法があります。
- unset()の使用
- array_splice()の使用
- array_shift()の使用
- array_pop()の使用
unset()の使用
unset関数は、配列の要素を削除します。キーを指定しない場合、要素の全てを削除します。また、要素のキーを指定して削除した場合、そのキーは歯抜けの状態となります。unset()関数は元の配列を変更します。
$array1 = ['りんご','ばなな','みかん'];
unset($array1);
print_r($array1);
// NULL
$array1 = ['りんご','ばなな','みかん'];
unset($array1[1]);
print_r($array1);
// Array (
// [0] => りんご
// [2] => みかん
// ) //[1] => ばなな が削除され、歯抜けの状態になった([2] => みかん は [1] => みかん に変更されない)
余談ですが、arrayを連番にしたい場合、array_values関数を用います。
$array1 = ['りんご','ばなな','みかん'];
unset($array1[1]);
$array1 = array_values($array1);
print_r($array1);
// Array (
// [0] => りんご
// [1] => みかん
// )
array_splice()の使用
array_splice関数は、指定した位置から配列の要素を削除します。array_splice関数は、元の配列を書き換えます。オプションを追加することで、削除する配列の要素数・削除した後に置換する要素を指定することもできます。書き方としては下記の通りとなります。
array_splice( 配列 , 配列の要素の削除開始位置 , [ , 削除する配列の要素数 [ , 置き換える要素 ] ]);
$array1 = ['りんご','ばなな','みかん'];
array_splice($array1 , 1);
print_r($array1);
// Array ( [0] => りんご ) // ‘ばなな’と’みかん’が元の配列から削除された
$array1 = ['りんご','ばなな','みかん'];
array_splice($array1 , 1 , 1);
// Array (
// [0] => りんご
// [1] => みかん
// ) //配列の1番目(削除開始位置)から1つの要素(ばなな)を削除
$array1 = ['りんご','ばなな','みかん'];
array_splice($array1 , 1 , 1 , ['ぶどう' , 'もも']);
print_r($array1);
// Array (
// [0] => りんご
// [1] => ぶどう
// [2] => もも
// [3] => みかん
// ) //配列の1番目(削除開始位置)から1つの要素(ばなな)を削除し、削除した箇所を’ぶどう’と’もも’で置換しました。
array_shift()の使用
array_shift関数は、配列の先頭の要素を削除する関数です。array_shift関数は、元の配列を変更します。array_shift(配列);で使うことができます。
$array1 = ['りんご','ばなな','みかん'];
array_shift($array1);
print_r($array1);
//Array (
// [0] => ばなな
// [1] => みかん ) // 配列の先頭の’りんご’が元の配列から削除された
array_pop()の使用
array_pop関数は、配列の最後尾の要素を削除する関数です。
array_pop関数は、元の配列を変更します。array_pop(配列);で使うとこが可能です。
$array1 = ['りんご','ばなな','みかん'];
array_pop($array1);
print_r($array1);
// Array (
// [0] => りんご
// [1] => ばなな
// ) //配列の最後尾の’みかん’が配列から削除された
配列の要素の変更
配列の要素を変更する方法は、大きく2つ方法があります。
- 1 要素のキーを指定して再代入する
- 2 allay_replace()の使用
要素のキーを指定して再代入する
今までの説明でも出てきましたが、連想配列を用いて既出の要素のキーを指定して変数を格納することで、配列の要素を変更できます。
$member['name'] = '太郎';
$member['gender'] = '男性';
$member['age'] = 20;
$member['address'] = '東京都';
print_r($member);
// Array (
// [name] => 太郎
// [gender] => 男性
// [age] => 20
// [address] => 東京都
// )
$member['age'] = 30; //ageに30を再代入
$member['address'] = '新宿区'; //addressに’新宿区’を再代入
print_r($member);
// Array (
// [name] => 太郎
// [gender] => 男性
// [age] => 30
// [address] => 新宿区
// ) //ageとaddressが変更された
array_replace()の使用
array_replace関数は、渡された配列の要素を置き換えます。array_replace関数は元の配列を書き換えません。書き方は以下の通りとなります。
array_replace(配列 , 置き換えたい要素を含む配列);
$member1 = [
'name' => '太郎',
'gender' => '男性',
'age' => 20,
'address' => '東京都',
];
$replace1 = [
'address' => '千葉県',
'age' => 25,
];
$replace2 = [
'name' => '次郎',
'address' => '神奈川県',
];
$member2 = array_replace($member1 , $replace1, $replace2);
print_r($member1);
print_r($member2);
// Array ( [name] => 太郎 [gender] => 男性 [age] => 20 [address] => 東京都 )
// Array ( [name] => 次郎 [gender] => 男性 [age] => 25 [address] => 神奈川県 )
配列同士の結合
- 1 array_merge()の使用
- 2 array_push()の使用
- 3 +演算子の使用
いずれも配列の要素の追加で説明した内容と同じです。
まとめ
いかがでしたでしょうか。今回はPHPの配列について紹介いたしました。具体的には以下の7つをご紹介いたしました。
- PHPの配列型とは
- 配列の作成方法
- 配列のキー
- 配列の初期化
- 連想配列
- 多次元配列
- 配列の操作(追加・削除・変更・結合)
今回の内容はかなり多数に渡りました。正直1回で理解することは難しいかもしれません。ただ、配列を理解するとプログラミングで実行できる範囲がかなり広がります。今回ご覧いただいた内容は、ぜひ理解して今後のプログラミングに活用してください。次回は条件分岐について説明します。非常に重要な回となりますので、ぜひご覧ください。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part6〜データ型を理解しよう〜
前回は自分で書いたPHPのプログラムをブラウザに表示させるところまで実行しました。今回は、プログラミングのデータ型について説明していきます。
「データ型」とは何か
それではさっそく「データ型」について紹介していきます。
プログラミングにおける「データ型」とは、扱うデータをいくつかの種類に分類して、各々について「名称」「特性」「範囲」「扱い方」「表記方法」「メモリ上での記録方法」などの、規約を定めたものです。扱うデータを分類することで、分類したデータを適切に管理したり、希望するデータを探しやすくなるメリットがあります。
例えば「電話番号の入力欄」に文字や小数点が入っていたら、適切な管理ができなくなるかと思います。11桁(+81から始まる場合はもう2桁増えます)の整数が入っている必要がありますね。この様な条件を指定するためにも、データ型は役に立ちます。
主なデータ型として、今回は以下の7つをご紹介いたします。
- 整数型(integer)
- 浮動小数点数型(float)
- 文字列型(string)
- 論理型(bool、boolean)
- 配列型(array)
- オブジェクト型(object)
- NULL型(null)
整数型(integer)とは
一番なじみやすいデータ型として、最初に整数型(integer)を紹介します。
整数型は「…、-4、-3、-2、-1、0、1、2、3、4、…」と「正の整数」「負の整数」「0」が該当します。
余談ですが、このinteger(整数)という単語…筆者は「高校数学で学習した積分のインテグラル(∮:integral)と発音が似てるな…」と感じていました。
調べてみたところ、いずれも語源は同じ様でして、ラテン語の integr-(完全な)から来ている様です。
浮動小数点数型(float)とは
「少数点以下の数を含む数」がこちらに該当します。
具体的には「1.3、20.67」などの小数点を含む数字が該当します。
ちなみに、PHPでは少数の取り扱いがあまり得意ではありません。というのも、少数に用意されている桁数に限りがあるためです。
例えば「0.333333…」の様な無限小数は管理しきれません。また、小数同士の計算を重ねていくと細かい誤差が出てきます。
桁数が決まっている少数の計算の場合、先に整数(例えば1,000倍にするなど)に変換して計算を行なってから、実際の小数に計算しなおす(計算の最後に1/1,000にする)などの工夫が必要です。
文字列型(string)とは
「文字、または文字が連結されたもの」をさします。文字列型を使う場合「'
(シングルクォート)」または「"
(ダブルクォート)」で囲います。
以前Part4でご紹介した、"山田太郎"
"山田花子"
などが文字列にあたります。ちなみに、整数型や不動小数点数型も「'
」や「"
」で囲うと文字列型になります。
論理型(bool、boolean)とは
型としては最も選択肢の少ない簡単な型ともいえます。論理型は真偽の値を表します。つまり「true(真)」または「false(偽)」のどちらかになります。
この論理型はプログラミングにおいて重要な「条件分岐」においてよく使われます。「ある条件が当てはまるときはA、そうでない場合はB」と言ったものですね。
代表的なものでif文があります。「もし〜なら○○」というやつですね(この様な文章は普段の会話ではあまり使わないかもしれませんが…)。
例えば「(今日は)疲れたから、帰りの交通手段にタクシーを使おう」も条件分岐に当てはまります。
疲れた = true(疲れている) → タクシーを使う
疲れた = false(疲れていない)→タクシーを使わない(歩いて帰るなど)
の様な感じですね。
この論理演算子ですが、true・falseとファイル内にベタ打ちしても判定されますが、条件が合致しているか否かでも判定されます。
詳細は別の機会に紹介しますが、以下に例をご案内いたします。
$haveMoney = 160;
if($haveMoney >= 140){
echo "ペットボトルの飲み物が買えます!";
}
この場合、$haveMoneyに160が代入されています。$haveMoney >= 140はtrue(160>=140なので正しい)です。したがって、if($haveMoney >= 140)の部分はif(true)と同じ意味になります。
上記のif文は()内の条件がtrueの時に{}内の処理を実行しますので、”ペットボトルの飲み物が買えます!”が呼び出されます。
boolに変換する場合、trueとfalseは以下の条件となります。
【false(条件が少ないのでこちらから記載します)】
- booleanのfalse
- 数値(integer)の0
- 浮動小数点数(float)の0.0、-0.0
- 文字列(string)の”0″
- 文字列(string)の空文字列の””
- 配列型の要素の数が0のもの
(配列型は後述しますが、複数の値をまとめて格納できます) - NULL
(NULLは後述しますが、変数が値を持たない状態です) - 属性がない空要素から作成されたSimpleXMLオブジェクト
(こちら詳細は今回割愛いたします)
【true】
- 上記以外の全て(負の数字、NAN(Not a Number)も含みます)
配列型(array)とは
配列型は複数の値をまとめて格納できる型となります。配列はarray()や[](ブラケット:角括弧)で表現されます。
基本的に変数を宣言した場合、格納される値は1つになります。一方配列型の場合、複数の値をまとめて1つの値として格納が可能となります。
具体的には下記の通りになります。
//①変数の基本形(リテラル型)
$member1 = "値1";
$member2 = "値2";
$member3 = "値3";
//②変数の配列型
$members = array("値1" , "値2" , "値3");
//$members = array(
// 0 => "値1" , //キーを0に指定
// 1 => "値2" , //キーを1に指定
// 2 => "値3" , //キーを2に指定
//);も同じ。
//$members = ["値1" , "値2" , "値3"];も同じ。[]で囲った場合、短縮公文になります。
//③配列型で作成した値の呼び出し
echo $members[0] // "値1"と表示される。
echo $members[1] // "値2"と表示される。
echo $members[2] // "値3"と表示される。
上記の通り、通常変数を定義する場合、変数の数だけ変数を宣言する必要があります①。一方、配列型を用いると、複数の値を1つの変数に格納できます②。そして配列型で作成した値を呼び出すには、配列のどこに格納されているかを指定する必要があります③。
ちなみにarray()および[]の中身の順番(index)に関してですが、特にキー(値に紐づいた名前)を指定しなかった場合、indexは0からスタートします。
配列に関しては他にも「連想配列」や「多次元配列」など、実践的な使い方が数多く存在します。今回は初歩的な部分の紹介に留め、詳しいことは次のブログ記事で解説いたします。
オブジェクト型(object)とは
オブジェクト型はデータ構造(プロパティ)と処理系(メソッド:関数)がまとまった型となります。このオブジェクト型を用いることで、機能毎のまとまりができるため、保守性・柔軟性・可読性などが向上します。
このオブジェクト型を理解するには、先に「関数」についても理解する必要があります。関数のご紹介はまた他の記事で実施し、今回はオブジェクトの大枠をざっくりとご紹介をいたします。
オブジェクト型を使用するには、いくつかの手順を踏む必要があります。
- 最初に「クラス(class)」を定義する
- 定義したクラス内に、必要なプロパティ(クラス内の変数)とメソッド(クラス内の関数)を定義する
- 定義したクラスを基に、オブジェクトを生成する(インスタンスの生成)
- オブジェクトを生成した後に、クラスで定義したプロパティやメソッドを呼び出す
この様な手順となります。具体例は以下の通りとなります。
<?php
//最初にクラスを定義する
class Human{
//プロパティの定義(実際の名前は後で設定するため、一旦値は空です)
public $name;
//メソッドの定義(メソッド内でプロパティを$this->nameを使って呼び出しています)
public function greet()
{
echo "こんにちは。私の名前は『" . $this->name . "』です!";
}
} //ここまでがクラスの定義
//クラスからインスタンスを生成する。
$ yamada = new Human();
//インスタンスの$nameプロパティに名前を設定する。
$ yamada->name = "山田 太郎";
//インスタンスのgreet()メソッドを呼び出す。
$ yamada->greet(); // ==> こんにちは。私の名前は『山田 太郎』です!
今回はHumanクラスを作成し、プロパティ(変数)に$name、メソッド(関数)にgreet()を用意しました。
急に難しくなりましたね…順を追って説明します。
class Human{
ここではclassを定義しています。
public
「アクセス修飾子」と呼ばれるものです。どこからプロパティやメソッドにアクセスできるかを表します。public,protected,privateなどがあります。今回は、外部からアクセスできるpublicを使用しています。外部からアクセスできないようにするにはprotectedやprivateを用います。
$name
プロパティ(クラス内の変数)です。必要に応じて後から変更できるよう、初期値は設定せず、変数宣言のみ実行しています。後で出てくる$yamada ->name = “山田 太郎”で、インスタンス化(後述参照)された$nameに値を設定しています。
public function greet(){...}
メソッド(クラス内の関数)です。ここでは「こんにちは。私の名前は『〇〇』です!」とechoされるメソッドを用意しました。
$this->name
擬似変数$thisからnameプロパティにアクセスしています。
.(ドット)
結合演算子です。.(ドット)の左側と右側を結合します。
ここまででクラスの定義が完了しています。
$yamada = new Human();
インスタンスを生成しています。
実はクラスというものは、定義するだけでは使用できません。
今回のように、$yamadaに対しnew演算子を用いてHumanクラスをインスタンス化した様に、インスタンスを生成する必要があります。
$yamada->name = "山田 太郎";
生成したインスタンスのnameプロパティに”山田 太郎”を代入しています。
$yamada->greet();
生成したインスタンスからメソッドを呼び出しています。事前に$yamada->name = "山田 太郎";
でnameプロパティに”山田 太郎”を代入したので、メソッドを呼び出した際は$this->name;
に”山田 太郎”が代入されます。したがって、メソッドが呼び出された際は
「こんにちは。私の名前は『山田 太郎』です!」
と表示されます。
大まかではありますが、オブジェクト型はデータ構造と処理系がまとまった型であることのご紹介をいたしました。
NULL型(null)とは
NULL型は「変数が値を持たない状態」を表す特殊な型です。具体的には以下の3つの状態が該当します。
- 定数のNULLが代入されている。
- 変数に値が代入されていない。
- 変数がunset()されている。
順を追って説明します。
「定数のNULLが代入されている」とは、変数に定数のNULLを代入している状態です。
次の「変数に値が代入されていない」とは、変数の宣言は行っているものの値が代入されていない状態を指します。
最後の「変数がunset()されている」とは、変数宣言を行い値を代入した後に、変数の割り当てを削除した状態です。各々以下の通りとなります。
<?php
$value1 = NULL; //定数NULLを代入しています
$value2 = ; //変数に値が代入されていません
$value3 = 3; //変数に3を代入しています
echo $value1; //何も出力されません
echo $value2; //何も出力されません
echo $value3; //3
unset($value3); //変数をunset()関数で$value3の変数の割り当てを削除しました
echo $value3; //今度は何も出力されません
この様に、変数が値を持たない状態がNULL型に該当いたします。
まとめ
いかがでしたでしょうか。
今回はPHPでの型について紹介いたしました。
次回はPHPでの配列について、より詳しく紹介していきます。
非エンジニアでも知らないとヤバイ Part7〜配列の紹介〜に移動する。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part5〜ブロック・変数・定数・代入演算子を理解しよう〜
前回はテキストエディタと開発環境を用意して、自分が書いたコードをブラウザに表示するところまで実施しました。
今回はPHPにおけるPHPブロック・変数・定数・代入演算子をご紹介していきます。
PHPを用いたブラウザでの表示方法がまだわからない方は、
非エンジニアでも知らないとヤバイPHP Part4〜ブラウザに表示してみよう〜
も合わせてご覧ください。
PHPブロックとは
PHPブロックは「ここからここまではPHPとして扱いますよ」と範囲を指定した部分をさします。具体的には
『<?php
』が開始タグ
『?>
』が終了タグ
となります。PHPはHTMLに組み込まれることを前提とした言語になっていますので、「ここがPHPだよ!」ということを明示してあげる必要があります。この開始タグ〜終了タグの内部はPHPとして処理され、タグの外部はPHPとしては処理されずに通常の文字列として出力されます。
Part4でご紹介した内容では、以下のコメント部分がPHPブロックに該当します。
<?php//ここからPHPブロックが開始。
$name1 = "山田太郎";
$name2 = "山田花子";
?> //ここまでがPHPブロックです。
<p>
<?php //ここからPHPブロックが開始します
echo "pタグ内に、phpのechoを使って文字を追加する";
?> //ここまでがPHPブロックです
</p>
この様に、『<?php
』の開始タグと『?>
』の終了タグで囲うことでPHPとして処理されます。PHPを扱う時は、上記の様に開始タグと終了タグを用いて「ここがPHPだよ!」と明示してあげる必要があることをご理解ください。
変数・定数とは
変数・定数と聞いて、最初に思い浮かぶのはなんでしょうか…筆者は中学から始まった数学(苦手な方も多かったのではないでしょうか)を思い出しました。
y = x + 1
といった数式を通して、変数・定数という概念に触れた方は多いと思います。基本的には、この数学で使われていた概念に近いものとなります。
PHPで扱う変数も定数も、「ある値を一定期間保管する、名前がついた領域・保管場所」という認識でご理解ください。よく参考書などでは「箱」といった概念を用いられることがありますが、値を格納したり(PHPでは『代入』と表現します)、取り出したり、格納する値を変更したりすることが可能となります。
代入演算子とは
変数・定数のご紹介に入る前に、代入演算子をご紹介いたします。『=
』この記号が代入演算子の基本となります。この記号を見ると「左辺と右辺が等しい(イコール)」といった意味が最初に浮かんでくると思います。数学の場合はそれで正しいのですが、PHPの場合では少し意味合いが異なります。
PHPでの『=
(代入演算子)』は「『=
』の左オペランドに『=
』の右オペランドを格納(代入)する」という意味合いになります。ここで急に「オペランド」という聞き慣れない単語が出てきたかと思います。オペランドとは「演算の対象となる値や変数」を指します。
したがって、代入演算子は「=の左側の値に=の右側の値を格納(代入)する」演算子になります。代入する値は右側であることを覚えておいてください。
変数とは
ものは試しということで、さっそく変数の具体例をご紹介します。上の2行に書かれた部分が変数に該当します。
<?php
$name1 = "山田太郎";
$name2 = "山田花子";
echo $name1; // 「山田太郎」が出力されます
echo $name2; // 「山田花子」が出力されます
?>
PHPの変数は『$
』のドル記号から書き始めます。つまり『$name1
』は「name1という名前の変数を用意する」ことを意味しています。『=
』は代入演算子でしたね。左の値に右の値を格納します。次に『”山田太郎”』は変数に格納する値の文字列となります。最後の『;(セミコロン)』は区切り文となります。文の終わりには必ずつけてください。
したがって、『$name1 = "山田太郎";
』は「変数name1に山田太郎という文字列を代入する(区切り文)」という意味になります。
PHPの変数にはいくつかルールがあります。
- ・最初に『$』をつける
- ・変数の名前に使用できるのは、半角英数字と_(アンダースコア)
- ・大文字と小文字は区別される
- (例:$Name、$nameは別の変数として扱われる)
- ・『$』の直後に数字は使えない
- (例:◯$name2、$_name3、×$3name)
- ・thisを変数名に使用することは推奨していない
- ($thisは擬似変数といって、PHPでは別の変数に既に使用されています)
- ・再代入が可能
再代入に関して説明します。以下のコードをご覧ください。
<?php
$number = 1;
$number = $number + 4;
?>
こちらを見て違和感を感じたのではないでしょうか。筆者も最初は違和感を感じました。
$number = $number + 4 ;
って「左辺と右辺イコールじゃないじゃん!」と。ここで先ほど説明した「代入演算子」「=」についてもう一度思い出していただきます。代入演算子は「=の左側の値に=の右側の値を格納(代入)する」でしたね。先ほどのコードに説明を加えると以下の様になります。
<?php //phpの開始タグ
$number = 1; //$number に 1 を代入する。
$number = $number + 4 ;
//新たな変数$numberに、最初に定義した変数$number(1が代入済)と4を足したものを再定義する
//$numberに代入されている数字は(1+4)で5となる。
?> //phpの終了タグ
上記の様になります。つまり
$number = $number + 4;
は
$number = 1 + 4;//定義済みの$number = 1;
となり、$number = 5;
となります。再度$numberに5が代入されているので、「再代入」となります。
定数とは
先ほど数学の式を紹介したかと思います。
y = x + 1
定数は上記式で言うところの「1」に該当します。変化しない数ですね。PHPにおける定数も、定義したあとは基本的に変更することがない値を定数に格納していきます。PHPの定数に関してもいくつかルールがあります。
- ・最初にdefine()と宣言する。
- ・define()の中に、「定義したい定数の名前」と「格納したい値」を記載する
- (例:define(NAME , “山田 太郎”);)
- ・定数名は慣習的に全て大文字で定義する
- ・定数の名前に使用できるのは、半角英数字と_(アンダースコア)
- ・定数名の最初に数字は使えない
- ・大文字と小文字は区別される
- ・定数は再定義、再代入ができない
- (先に定義した定数の値が使用される)
となります。コードで確認していきましょう。
<?php
define(NAME , "鈴木一郎");
echo NAME ; // 「鈴木一郎」が出力されます。
define(NAME , "田中さん"); //既にNAMEが定義されているため、再定義はできません。
echo NAME ; // 先に定義している「鈴木一郎」が出力されます。
?>
まとめ
いかがでしたでしょうか。今回はPHPでのPHPブロック・変数・定数・代入演算子をご紹介いたしました。次回はPHPにおけるデータ型を紹介していきます。
非エンジニアでも知らないとヤバイ Part6〜データ型を理解しよう〜に移動する。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part4〜ブラウザに表示してみよう〜
前回はPHPの学習に必要なテキストエディタについてお話ししました。
今回はいよいよ実際に自分でプログラムを書いて、自分が書いたコードをブラウザに表示させていきましょう!
PHPのプログラミングに必要な事前準備(環境設定、テキストエディタの用意)がわからない方は
非エンジニアでも知らないとヤバイPHP Part2〜環境設定の実施〜
非エンジニアでも知らないとヤバイPHP Part3〜テキストエディタの紹介〜
も合わせてご覧ください。
使用するフォルダ(ディレクトリ)とファイルを用意しよう
それでは実際にコードを書いていく準備を進めていきましょう。
PHPはサーバーサイドで動くプログラミング言語のため、ローカルの設定を用意するんでしたね。途中まではPart2で紹介しましたので、次はコードを書くためのフォルダとファイルを用意していきます。
MAMPを使ってローカル設定を行う場合、フォルダとファイルを所定の場所に用意する必要があります。その場所ですが
アプリケーションMAMPhtdocs
となります(下図参照:MAMPをインストールすると、「お読みください.rtf」も同時にインストールされますが、こちらにも同様のことが書かれています)。ここにフォルダやファイルを作成していきます。
今回は、htdocsフォルダ内にphp-testフォルダ(ディレクトリ )を作成し、その中にindex.phpファイルを作成していきます。
コードを書いて、表示させるための準備を整えよう
もう少し準備を進めていきます。
- ・まずはご自身のテキストエディタを開きます。
- (筆者はVisual Studio Codeを使用しています)
- ・次に、先ほど作成したphp-testフォルダ(ディレクトリ )をテキストエディタ上に設定いたします。
- (筆者の場合、php-testフォルダをVisual Studio Codeにドラック&ドロップします)
- ・アプリケーションMAMPhtdocsphp-testフォルダ(ディレクトリ)にindex.phpを作成します。
- ・htmlの雛形を作成します。
- ・ローカルサーバーに接続したか確認するために、<body></body>タグ内に
- <h1>phpのテスト</h1> を用意します。
ここまで用意できましたら、下記の画面の様になっているかと思います。
ローカルサーバーに接続し、ブラウザに表示させてみよう
続いて、ローカルサーバーを立ち上げてブラウザに表示させてみましょう。
Part2でサーバーの起動までを実施したかと思います。サーバー起動後にphpファイルをブラウザに表示させるところまでを、ここでは行なっていきます。
htmlファイルの場合、ファイルをブラウザにドラッグ&ドロップすればファイルの表示ができたかと思います。一方phpファイルでは、ただファイルをドラック&ドロップするだけではブラウザに期待する画面が表示されません。
phpファイルサーバーが起動されている状態で、以下のパスをブラウザのアドレスバーに入力してみてください。
http://localhost:8888/php-test/index.php
以下の画面の様に先ほど<h1>タグ内に入力した「phpのテスト」が表示されていれば成功です。
これでローカルサーバーを用いたブラウザでの表示ができました。
PHPのコードを書いて、実際に表示させてみよう①
それではいよいよ実際にコードを書いてブラウザに反映させていきます。
PHPの特徴として「htmlコードに部分的に記載できる」ことが挙げられます。先に作成したindex.phpファイルは、一見するとファイル内のコードはhtmlファイルと変わりがなかったかと思います。html内のコードにPHPのコードを追記することで、PHPのプログラムを実行することが可能となります。
では一緒にコードを書いていきましょう。
PHPコードの記述の基本ですが、「<?php ?>
」このタグの間にコードを書き込んでいきます。もっと詳しく言うと「<?php
」と「?>
」の間にコードを書いていきます。以下のコードを追記してみましょう。
<p>pタグ内に文字を追記する(html内の記述)</p>
<p><?php echo "pタグ内に、phpのechoを使って文字を追加する" ;?></p>
<p><?php print("pタグ内に、phpのprint関数を使って文字を追加する") ;?></p>
PHP内に入力する今回の文章に関しては「"
(ダブルクォーテーション)」をつけて囲ってください。また、終了部分には、「;
(セミコロン)」を入力してください。
入力が完了すると、以下の様なコードになっているかと思います。
実際にブラウザに反映させるために、ブラウザを更新(ページを再読み込み)してみましょう。ブラウザ上の更新ボタンを押すか、Windowsの場合「F5(ファンクション5)」、Macの場合「command+R(す)」で更新できると思います。画面が以下の様に更新されたら成功です!
PHPでコードを記述して、実際にブラウザに表示させることができました!
おめでとうございます!!
ここで少し解説に移ります。今回<?php ?>
内に記載した「echo
」と「print()
」に関しては、細かい違いはありますが、いずれも文字列を返却するものと一旦ご理解ください。
そして返却したい文字列に関しては「’(シングルクォーテーション)」または「”(ダブルクォーテーション)」で囲います。そして、文末の「;(セミコロン)」ですが、PHPの命令文の区切りとして用いられています。
もう少し追加してみましょう。先ほど入力したコードの下に以下のコードを追記します。
<p><?= “pタグ内にPHPのショートタグを使って文字を追加する”; ?></p>
追記できましたらブラウザを更新してみてください。こちらでも入力した文字列が表示されたかと思います。
今回PHPコードの開始に書かれている「<?=
」という書き方ですが、ショートタグという記法になります。
意味合いとしては「<?php echo
」と同じです。ショートタグでもPHPの記載は可能です。
この様な書き方も覚えておいてください。
PHPのコードを書いて、実際に表示させてみよう②
せっかくですので、もう少しプログラミングっぽく書いてみましょう!!
正直今のままですと「PHPでブラウザに表示できることはわかった…でもぶっちゃけhtmlで書いたほうが早いんじゃない?」と思われた方もいらっしゃると思います。
詳細は非エンジニアでも知らないとヤバイPHP Part6で説明しますが、今回は追加で変数という概念を用いてPHPコードを呼び出してみようと思います。
以下のコードをファイルの先頭行に追加してください。
<?php
$name1 = “山田太郎”;
$name2 = “山田花子”;
?>
次に、【実際に表示させてみよう①】で作成したpタグの次の行から、以下のコードを追記してみます。
<p><?php echo $name1 ;?></p>
<p><?= $name2 ;?></p>
テキストエディタの結果は以下の様になっているかと思います。
ここまで作成できましたら、改めてブラウザを更新してみましょう。以下の様にブラウザ上で表示されていると思います。
先ほどファイルの3行目と4行目で記述した「山田太郎」と「山田花子」がそれぞれ、22行目と23行目に記載した
<?php echo $name1 ;?>
<?= $name2 ;?>
のところに表示されているかと思います。
この22行目と23行目では、それぞれの変数($name1、$name2)に格納した文字列(山田太郎、山田花子)を呼び出してPHPで表示していることになります。
この様に、PHPでは値を設定して呼び出したり、別のファイルから情報を読み込んで表示したり命令を実行したり、データベースに情報を格納したりと、様々なプログラムを実行することが可能になります。
まとめ
いかがでしたでしょうか?
今回はPHPで作成したコードを、ローカル環境を用いて実際にブラウザに表示させるところまでを学習しました。次回はPHPの「PHPブロック・変数・定数・代入演算子」についてお話していきます。
非エンジニアでも知らないとヤバイPHP Part5~ブロック・変数・定数・代入演算子を理解しよう~に移動する。
おまけ
今回の様に新しい情報が出てくると、わからないことに遭遇する機会が出てくると思います。その場合、まずは公式リファレンスをご参照ください。
もちろん公式リファレンス以外でも、お使いのブラウザで調べたいことを検索すれば必要な情報を入手することは可能です。
また、公式リファレンスはややとっつきづらい印象があるかと思います(筆者も最初は避けていました)。
ただ、可能であれば早い段階から公式リファレンスに慣れておくことをお勧めいたします。情報としての信頼度が一番高いサイトとなっております。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part3〜テキストエディタの紹介〜
前回はPHPの学習に必要なローカル設定についてお話ししました。今回はプログラムを書くのに必要なテキストエディタについてお話をします。
PHPに必要なローカル設定が分からない方はこちらをご覧ください。
テキストエディタとは?
テキストエディタとは文字通り「テキストファイルを編集するソフト」のことです。
Windowsには メモ帳というソフトが付いているのですが、実はこれもテキストエディタになります。
メモ帳は、漢字・ひらがな・カタカナ・アルファベット・記号などテキストを入力できるのですが、フォント種類やサイズ変更以外はほとんど機能がありません。
テキスト入力でよく使うようになると 少し物足りない・機能が不足しているということになります。メモ帳が今まで出来ていた CSVファイルやHTMLファイル・CSSファイルの編集をはじめ、メモ帳では開けなかったPHPファイルなど プログラミング言語が書かれたファイルを開いて編集したりすることもできます。
メモ帳を含め数多くのテキストエディタが世の中にはあります。ではどれを使うのがプログラミング未経験者にとって最も良いのでしょうか。
おすすめのテキストエディタ
今回はMac,Windows,Linux全てに対応しているテキストエディタを紹介していきます。
Sublime Text(有料※無料でも使える)
海外産の テキストエディタです。
拡張性がかなり自由なため、上級者でもよく使っています。海外産ではありますが、日本語化も可能です。Sublime Text 3が最新版ですが、Sublime Text 2は無料で利用することが出来ます。
Aptana Studio(無料)
初心者にオススメと タイトルに書いてるのですが、若干中級者寄りかもしれません。
このAptana Studioは海外の テキストエディタで、 HTML5・ CSS3(Web制作に必要なプログラミング言語)にも対応しています。日本語化も有志によって行われているので安心です。プログラミング未経験者にはおすすめはできないです。
Atom(無料)
今一番注目されている テキストエディタといえるのが、この「Atom」です。
Windows、Mac、LINUXに対応していて無料で使うことが出来ます。Sublime Text同様に拡張機能が豊富で、Web開発者が使いやすい機能が豊富に取り揃えられています。また日本語化も設定で可能ですのでおすすめです。
Atom:https://atom.io/
Visual Studio Code(無料)
現在投稿者の周囲で使っている方が最も多いテキストエディタツールです。Microsoft社が開発しているテキストエディタです。Windows、Mac、Linuxの複数のディストリビューションに対応しています。拡張機能・ショートカットコマンドが大変豊富で、UI・操作性にも優れます。頻繁なマイナーアップデートも実施しています。デフォルトが英語対応のため、日本語対応の拡張機能をお使いいただくことをお勧めいたします。
Visual Studio Codeのインストールですが、下記の公式サイトにアクセスしてダウンロードいたします。私自身昔はAtomを使っていましたが、今はVSCodeを使っています。
Visual Studio Code:https://azure.microsoft.com/ja-jp/products/visual-studio-code/
まとめ
どのテキストエディタも使い勝手は良いです。その中で、筆者はVisual Studio Codeをおすすめします。
理由は2点あります。
- ・パッケージが豊富
・UIが整っている
見やすさや変換予測が充実していることでプログラムを書く際のミスは大幅に減るかと思います。ぜひ使ってみてください。
次回は早速PHPのプログラム作成についてお話しします。
非エンジニアでも知らないとヤバイPHP PART4〜ブラウザに表示してみよう〜に移動する。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part2〜環境設定の実施〜
前回PHPとは何かについてお話をしましたので今回は早速プログラミングの実装について勉強していきましょう。
PHPが初めての方は非エンジニアでも知らないとヤバイPHP Part1をご覧ください。
環境設定
今後勉強していく内容はあくまでも勉強用ですので自分が気軽に見れるような設定にしましょう。そのような設定をローカル設定と言います。PHPのローカル設定に必要なものとして、
- ・XAMPP(ザンプ)
・MAMP(マンプ)
というものがあります。
前回お話したように、PHPはサーバー側で動くプログラミング言語です。ですので自分専用のサーバーとしてXAMPPやMAMPを手に入れましょう。XAMPPはフリーソフトの為無料で利用出来ます。MAMPは有料版と無料版がありますが、無料版をダウンロードで対応可能です。
WindowsOSをご利用の方はXAMPPを、MacOSをご利用の方はMAMPを選択していただければと思います。早速ダウンロードしていきましょう。
ダウンロード方法
皆様がお持ちのPCに合ったXAMPP・MAMPをダウンロードしていきましょう。
今回は筆者のWebサーバー環境を構築するMac環境(MAMP)で話を進めさせていただきます。
Webサーバー起動
ダウンロードが完了しましたら、早速MAPPを開きましょう。
アプリケーションを起動すると、以下の画面が表示されます。
次に、ローカルの環境を設定していきましょう。
左上のPreferencesを選択し、Portsを選択します。Apatch Port:やNginx Port:など、Portの設定項目が表示されますが、Set Web & MySQL ports to:の部分で「MAMP default」を選択します。すると、以下の画面の状態になっているかと思います。
このようになりましたか?これでPortの設定が完了します。右下のOKボタンをクリックし、右上に表示されているStartボタンをクリックします。ローディングアイコンが起動し、以下の様な画面がブラウザに表示されれば成功です。
これで開発環境の事前準備が整いました。
この後実際に自分で作成したコードをブラウザに表示させるためにはもういくつかの準備が必要ですが、続きは非エンジニアでも知らないとヤバイPHP Part4にて説明していきたいと思います。
まとめ
今回はローカル設定についてお話ししました。次回はコーディングに必要なエディタのお話をしていこうと思います。非エンジニアでも知らないとヤバイPHP Part3〜テキストエディタの紹介〜に移動する。
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
非エンジニアでも知らないとヤバイPHP Part1〜PHPでできること〜
プログラミング経験有無に関わらず知識は必要
タイトルに記載していますように非エンジニアの方(業界問わず)でもプログラミングに関する知識は必要です。昨今世界中においてあらゆる分野において情報化が進んでいます。これは日本も例外ではありません。日本の小学校では、2020年以降プログラミング教育が必修化されています。近い将来今まで以上に情報技術に追い付けず社会から置いていかれるかも知れません。このシリーズでは、今までプログラミング経験皆無の人にも理解してもらえるように、分かりやすく書いていきます。
PHPとは?
PHPとはHypertext Processorを再帰的に略したものです。主にWebサービスやアプリ開発でよく使用されるサーバーサイドのスクリプト言語です。オープンソースの為世界中で幅広く利用されています。HTMLの中にPHPを書くことが可能な為便利な言語です。
また、プログラミング初心者が比較的取り組み易い言語として有名です。主な理由は2点あります。
①他言語に比べて文法がシンプル
②MySQL等のデータベースとの連携が容易
MySQLについて知りたい方は非エンジニアでも知らないとヤバイSQL Part1をご覧ください。
PHPで出来ること
PHPではWebアプリ開発やスマホアプリ・デスクトップアプリのデータ管理をサーバーサイドで可能となります。
例として、
- ・お問い合わせフォーム
- ・検索機能
- ・予約システム
- ・ログイン機能
等が作成可能です。
実際に、facebookやWikipedia等に使用されています。
PHPが動く仕組みについて
PHPはサーバーサイドのプログラミング言語です。
HTMLやCSSで保存されているファイルをWeb上サーバーで動作していきます。ユーザーがリクエストしたことに対してデータを返していきます。
具体例としてTwitterを考えていきましょう。
クライアント(ここではユーザー)がツイートをした時にサーバーサイド(Twitter運営会社)は、それをデータベースに格納します。また、他のクライアントが最新のツイートを表示したい場合、サーバーサイドから最新のツイートを送ります。
PHPが苦手なこと
高密度なグラフ等の作成やビックデータを用いた計算は得意ではない為、処理速度が遅いです。その為別の言語(Python等)を利用することをお勧めします。
次回はPHPの開発環境の設定方法について学んでいきましょう。
非エンジニアでも知らないとヤバイPHP Part2〜環境設定の実施〜
最後に
プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
Warning: include(/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html): failed to open stream: No such file or directory in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24
Warning: include(): Failed opening '/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html' for inclusion (include_path='.:/usr/share/pear7:/usr/share/php') in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24