ホームページでPHPを使う為の、入門,基礎,勉強講座

このページではPHPを始めるにあたり、最初に勉強するコードなどを実行例とかも交えて勉強するページです。

目次がありますので気になる構文を見て参考にでもしてください。

目次

PHP 変数とは

変数とはよく言われていますが、箱をイメージするとわかりやすいです。箱は必要なものを必要な時に入れておくことができ、必要な時に出すことができます。変数とはプログラムで使うことのできる、値を入れる箱です。

cardboard_open1

記述方法

PHPのプログラムを記載するルールとして、開始タグ終了タグを記載ししここからここまでがPHPのプログラムですよ!!とわかるようにしなくてはなりません。

実際にPHPでプログラムを作ってみます。

 
<?php                       //phpが始まりますという意味の開始タグ

       echo "こんばんわ";
?>                          //phpが終りますという意味のタグ

phpのプログラムを記載するには、必ず開始タグ、終了タグを記載します。

短縮系

短縮系もありで開始、終了タグとも[?]だけです。

 
<?                      //phpが始まりますという意味の開始タグ

       echo "こんばんわ";
?>                          //phpが終りますという意味のタグ

問題なく動作はしますが、この方法のプログラムはあまり見かけませんね。

PHP コメントの記載方法

コメントとはこのプログラムはこのような動作をしているなど、あとから見た場合に編集しやすくしたり、プログラムの作成担当者が複数いる場合など、だれが見てもわかるようにする為に必須です。またコードをデバックする際に、コードを有効にしたり、無効にしたりする場合にも使えます。コメントの記載は何通りかあります。

// この後に記述する内容はコメントになります「1行のみ」
# この後に記述する内容はコメントになります「1行のみ」
/*コメントはじまり
*/ここまでがコメントになる「複数行に対応可能」

PHP 比較演算子とは?

比較演算子とは2つの値を比較する演算子で、条件が合えばTRUEを返し合わなければFALESを返しますif文などの条件を分岐する際に使われます。

演算子 解説
== $x == $y $xと$yが等しいとTRUE
!= $x != $y $xと$yが等しくないとTRUE
<> $x <> $y $xと$yが等しくないとTRUE
< $x < $y $xが$yより小さいとTRUE
> $x > $y $xが$yより大きいとTRUE
<= $x <= $y $xが$yより小さいか等しいとTRUE
>= $x >= $y $xが$yより大きいか等しいとTRUE

実際に比較演算子を使用してみます

<?php
$x = 100;
$y = 200;

if($x == $y){
   echo '$xと$yは等しい'; //TRUE
}else{
   echo '$xと$yは等しくない';  //FALSE
}
?>

実行結果はFALES

違う比較演算子を使用してみます

<?php
$x = 100;
$y = 200;

if($x != $y){
   echo '$xと$yは等しくない'; //TRUE
}else{
   echo '$xと$yは等しい';   //FALSE
}
?>

実行結果はTRUE

PHP文字列の出力 (echo 文 、print 文 )

PHP文字列の出力方法は一般的にはecho文 、print文を使います。どちらでも同じ結果になります。
違いとしてはechoは引数を複数指定することができ、省略形があります。printは戻り値を取得できるという違いがあります。



<?
    echo "こんにちは";
    print "こんにちは";
?>

php 「=>」 「->」 の使い方 意味とは? 演算子

「->」に関してですが、こちらはフィールド変数を参照するための演算子です。

$st = $pdo->query(“SELECT * FROM sin ORDER BY id DESC LIMIT 5;”);

「=>」は、配列に値を代入するための演算子です。

PHP 変数の型を調べる方法

編集の型を調べる方法としてgettype()関数またはvar_dump()関数があります

<?php
$no = 789;  //変数に数字を代入します
$name = 'さとう';  //変数に文字列を代入します

echo '$no は: ' . gettype($no) . '<br />';
echo '$name は: ' . gettype($name) . '<br />';

//is_int()関数は整数型かどうかを返す関数です。変数$noを調べてみます
if(is_int($no)){
    echo '$noは 整数型です<br />';    //if文がTRUE
}else{
    echo '$noは 整数型ではありません<br />';  //FALSEの場合
}


//is_int()関数は整数型かどうかを返す関数です。変数$nameを調べてみます
if(is_int($name)){
    echo '$nameは 整数型です<br />';
}else{
    echo '$nameは 整数型ではありません<br />';
}

//is_string()関数は文字型かどうかを返す関数です。変数$noを調べてみます
if(is_string($no)){
    echo '$noは 文字列です<br />';
}else{
    echo '$noは 文字列ではありません<br />';
}

//is_string()関数は文字型かどうかを返す関数です。変数$nameを調べてみます
if(is_string($name)){
    echo '$nameは 文字列です<br />';
}else{
    echo '$nameは 文字列ではありません<br />';  //if文FALSEの場合
}

//var_dump()関数でも型を調べることができます
var_dump($no);
var_dump($name);
?>



上記コードを実行

‘;
echo ‘$name は: ‘ . gettype($name) . ‘
‘;

//is_int()関数は整数型かどうかを返す関数です。変数$noを調べてみます
if(is_int($no)){
echo ‘$noは 整数型です
‘; //if文がTRUE
}else{
echo ‘$noは 整数型ではありません
‘; //FALSEの場合
}

//is_int()関数は整数型かどうかを返す関数です。変数$nameを調べてみます
if(is_int($name)){
echo ‘$nameは 整数型です
‘;
}else{
echo ‘$nameは 整数型ではありません
‘;
}

//is_string()関数は文字型かどうかを返す関数です。変数$noを調べてみます
if(is_string($no)){
echo ‘$noは 文字列です
‘;
}else{
echo ‘$noは 文字列ではありません
‘;
}

//is_string()関数は文字型かどうかを返す関数です。変数$nameを調べてみます
if(is_string($name)){
echo ‘$nameは 文字列です
‘;
}else{
echo ‘$nameは 文字列ではありません
‘; //if文FALSEの場合
}

//var_dump()関数でも型を調べることができます
var_dump($no);
var_dump($name);
?>

PHP 繰り返し構文 while for文について

while文は初めに条件式で評価し、その式の条件が満たされるまでループし続けます。条件式が満たされると{}の外にでます。


while(条件式){
    処理スクリプト
}
 

for文

while文とあまり変わりませんが、条件式が少し変わります。


for(初期値式;条件式;増減式){
    処理スクリプト
}

初期値式は、繰り返し処理が行われる前に1回実行され、その値をもとに条件式で判定され、結果その値がTRUEならば{}の中のスクリプト処理を実行し、その後増減式で値を増やしたり、減らしたりします。

それではwhile文を実際に実行してみよう!!

 
<?php
// 変数に5を代入
  $x = 5;
      while($x > 0){        //変数が0以下になるまでループ
      echo $x . '<br />';
      $x--;                //値を1ずつ減算
      }
?>

上記プログラム実行結果

0){
echo $x . ‘
‘;
$x–;
}
?>

PHP 変数の型を変換する方法 strval()関数  intval()関数

変数の型を変えたい場合にstrval()関数  intval()関数が使えます。strval()は文字列に、intval()は数字型に変換します

<?php
$no = 789;  //変数に数字を代入します
$name = '1000';  //変数に文字列を代入します

echo '$no は: ' . gettype($no) . '<br />';
echo '$name は: ' . gettype($name) . '<br />';


//var_dump()関数でも型を調べます
var_dump($no);
var_dump($name);

//関数を使い型を変換してみます
$no = strval($no);
$name = intval($name);

var_dump($no);
var_dump($name);

?>

上記コード実行

‘;
echo ‘$name は: ‘ . gettype($name) . ‘
‘;

//var_dump()関数でも型を調べます
var_dump($no);
var_dump($name);

//関数を使い型を変換してみます
$no = strval($no);
$name = intval($name);

var_dump($no);
var_dump($name);

?>

PHP NULL と空要素の違い

NULLとは変数が値をもたないことを表す値を言います。

NULLは定数です「ヌル」と呼び ” 空とは異なりますが「==」で比較すると等しいと判定されます。
NULLかどうかを調べるにはis_null()関数を使用すればわかります。

下記に使用例も合わせてコードを実行してみます。
それと合わせて$x,$y両方isset()関数での返り値も調べてみます。
答えは$xがFALSE、$yはTRUEが返ると思います。

<?php
$x = NULL;
$y = '';

//echoで出力をしてみようとするとどちらも表示されません

echo '$x:' . $x . '<br />';
echo '$y:' . $y . '<br />';

if($x == $y){
   echo '$xと$yは等しい(==)<br />';
}else{
   echo '$xと$yは等しくない(==)<br />';
}
if($x === $y){
   echo '$xと$yは等しい(===)<br />';
}else{
   echo '$xと$yは等しくない(===)<br />';
}
if(is_null($x)){
    echo '$xはNULLです<br />';
}else{
    echo '$xはNULLではない<br />';
}
if(isset($x)){
    echo '$xはTRUE<br />';
}else{
    echo '$xはFALSE<br />';
}
if(is_null($y)){
    echo '$xはNULLです<br />';
}else{
    echo '$xはNULLではない<br />';
}
if(isset($y)){
    echo '$xはTRUE<br />';
}else{
    echo '$xはFALSE<br />';
}


?>

上のコードの実行結果

‘;
echo ‘$y:’ . $y . ‘
‘;

if($x == $y){
echo ‘$xと$yは等しい(==)
‘;
}else{
echo ‘$xと$yは等しくない(==)
‘;
}
if($x === $y){
echo ‘$xと$yは等しい(===)
‘;
}else{
echo ‘$xと$yは等しくない(===)
‘;
}
if(is_null($x)){
echo ‘$xはNULLです
‘;
}else{
echo ‘$xはNULLではない
‘;
}
if(isset($x)){
echo ‘$xはTRUE
‘;
}else{
echo ‘$xはFALSE
‘;
}
if(is_null($y)){
echo ‘$xはNULLです
‘;
}else{
echo ‘$xはNULLではない
‘;
}
if(isset($y)){
echo ‘$xはTRUE
‘;
}else{
echo ‘$xはFALSE
‘;
}

?>

PHP ==  と === 、!=  と !==の違い

[==][!=]は値が等しいか、等しくないかを判別するので、値x と値yがあった場合、数値と文字列の違いがあっても等しくなる場合があります。[===] [!==]は型が等しいかも含めて判別し、型が違う場合はFALSEを返します。

変数$xに値1を代入した例

演算子 動作 説明
== $x == ‘1’ TRUE 変数$Xの値が同じなのでTRUE

=== $x === ‘1’ FALSE 変数$Xの値は同じだが型が違うためFALUSE

!= $x != ‘1’ FALSE 変数$Xの値が同じなのでFALUSE

!== $x !== ‘1’ TRUE 数$Xの値は同じだが型が違うためTRUE

条件式==の場合

<?php
  $x = 1;
  $y = '1';
//条件式を==にした為、型までは認識しないのでFALSEを返します
if($x == $y){
    echo 'TRUE';
}else{
   echo 'FALSE';
}

?>
 

上記プログラムの実行結果

条件式を===に変更すると

<?php
  $x = 1;
  $y = '1';
//条件式を===にした為、型を認識しFALSEを返します
if($x === $y){
    echo 'TRUE';
}else{
   echo 'FALSE';
}

?>
 

上記プログラムの実行結果

PHP =& を使用した参照渡し

通常 = の代入の場合は変数の値がコピーされ、これを値渡しと呼びます。=&での代入の場合は参照渡しとよばれ、2つの変数が同じものをさします。そのため下記のソースで$xの値をappleに変更すると$zの値も同じ文字列に変更されるのです。一方変数$yに関しては値渡しなので、文字列appleに変更されません。

<?php

$x = 'bus';

//値渡しをします
$y = $x;
//$zには参照渡しをします

$z =& $x;

echo '$x:' . $x . '</br />';
echo '$y:' . $y . '</br />';
echo '$z:' . $z . '</br />';

//変数$xの値を変更
$x = 'apple';
echo '$x:' . $x . '</br />';
echo '$y:' . $y . '</br />';
echo '$z:' . $z . '</br />';
?>

上のコードの実行結果

‘;
echo ‘$y:’ . $y . ‘
‘;
echo ‘$z:’ . $z . ‘
‘;

//変数$xの値を変更
$x = ‘apple’;
echo ‘$x:’ . $x . ‘
‘;
echo ‘$y:’ . $y . ‘
‘;
echo ‘$z:’ . $z . ‘
‘;
?>

PHP define() 定数の使用方法

define()関数を使用し、定数を定義することができます。define()関数を使用して、一度定義した定数は、再定義することはできません。定数は一度格納した値を、保ちます。つまり、なにか処理をした後で、定数を用いても、定数の値が変わることはありません。定数名は、デフォルトでは大文字、小文字を区別しますが、以下のように第3引数にTRUEを指定すると大文字、小文字を区別しません。

define('定数名', '値',  TRUE);

たとえば上記のように第3引数にTRUEを指定しておけば、定数名にappleを指定した場合、appleでもAPPPLEでも定数値を呼び出せます。


<?php
//定数を定義しよう
define('apple', 'red!!');
echo '定数:apple: ' . apple . '<br />';
/*定数をAPPLEで呼びだしてみます。本当はエラーが出ると思ったのですがwordpress上だと思っていたのと違う結果になりました*/
echo '定数:apple: ' . APPLE . '<br />';

?>
 

上のコードの実行結果

‘;
/*定数をAPPLEで呼びだしてみます。本当はエラーが出ると思ったのですがwordpress上だと思っていたのと違う結果になりました*/
echo ‘定数:apple: ‘ . APPLE . ‘
‘;

?>

PHP 繰り返し処理の途中でのスキップ continue文

for文while文の途中でもcontinue文を使えば、ループ処理からスキップして{}を抜けることができます。

<?php
//array関数で配列にred,blue,yellow,を代入

   $sinngou = array('red', 'blue', 'yellow');
      for($x = 0; $x < 3; $x++){
          if($x == 1){            //$sinngou[2]に行く前にスキップする
            continue;
          }
         echo $sinngou[$x] . '<br />';
     }
?>
 

プログラム実行結果

‘;
}
?>


  if($x == 1){            //$sinngou[2]に行く前にスキップする
            continue;
          }

上記のコードが入ることによって、for文でループ中$sinngou[2]に代入されているyellowを出力するまえにスキップします。

PHP ループを途中で抜ける break文

break文を使えばwhile文、if文などの繰り返し処理の途中で、ループを抜けることができます。それではbreak文を使ってみます。


<?php
//array関数で配列にred,blue,yellow,を代入

   $sinngou = array('red', 'blue', 'yellow');
      for($x = 0; $x < 3; $x++){
      echo $sinngou[$x] . '<br />';
           if($x == 1){
             echo 'ループ抜け';
             break;
          }

       }

?>

変数$sinngou[0]にはred、$sinngou[1]にはblue、$sinngou[2]にはyellowが代入されています。
break文で$sinngou[1]をechoで出力したあと抜けるように設定されていますので、
yellowは出力されずに終了します。

プログラム実行結果

‘;
if($x == 1){
echo ‘ループ抜け’;
break;
}

}

?>

PHP 処理を条件によって分岐させる方法は? if elseif else

if文、ifelse文、else文を使用すれば、処理を条件によって分岐させることができます。よく使われるのがif文で、最初のif(条件)をTRUEまたはFALSEで判別し処理を実行します。


<?php
/*まずは変数に値を代入してみます。テストがあり、合格点は80点以上、
40点以上は追試が受けられる、それ以下は落第ということにします。
青木さんは100点、佐藤さんは30点というふうに想定してみました*/
$goukaku = 80;
$tuisi = 40;
$aoki = 100;
$satou = 30;

//変数の値を比較し条件を分岐させてみます
echo '青木さんは<br />';
if($aoki >= $goukaku){
echo '合格です<br />';
}elseif($aoki >= $tuisi){
echo '追試です<br />';
}else{
echo '落第です<br />';
}

//$satou次は佐藤さんの点数を比較し条件を分岐させてみます

echo '佐藤さんは<br />';
if($satou >= $goukaku){
echo '合格です<br />';
}elseif($satou >= $tuisi){
echo '追試です<br />';
}else{
echo '落第です<br />';
}

?>

上記コードの実行結果

‘;
if($aoki >= $goukaku){
echo ‘合格です
‘;
}elseif($aoki >= $tuisi){
echo ‘追試です
‘;
}else{
echo ‘落第です
‘;
}

//$satou次は佐藤さんの点数を比較し条件を分岐させてみます

echo ‘佐藤さんは
‘;
if($satou >= $goukaku){
echo ‘合格です
‘;
}elseif($satou >= $tuisi){
echo ‘追試です
‘;
}else{
echo ‘落第です
‘;
}

?>

またif文やelse文は省略することもできます。

<?php
if($atari == TRUE){
   echo 'あたり';
}
if($atari) echo 'あたり';

if($ataro != TRUE){
   echo 'はずれ';
}

if(!$atari) echo 'はずれ';
?>
<?php
if($atari == TRUE){
   echo 'あたり';
}
if($atari) echo 'あたり';

if($ataro != TRUE){
   echo 'はずれ';
}

if(!$atari) echo 'はずれ';
?>

条件式は直接数字を入れるのではなく、変数や定数にいれて、
あとからでも簡単に変更できるようにしましょう

8時にアラームがなるプログラム

<?php
//現在時刻を取得して変数に代入
   date_default_timezone_set('Asia/Tokyo');
   $jikann = date('H');
   $time = 8;

if($time == $jikann){
  echo '時間ですよ';
}else{
    echo date("Y年m月j日 H時i分") . 'なので、まだ時間じゃないですよ';
}
?>

上記コードを実行してみると!!

PHPでのswitch文の使い型

分岐処理にはswitch文の他にif文などがありますが今回はswitch文についてです。

とりあえずコードを書いてみます

<?php
$x = 1;
switch ($x) {
    case 0:
        echo "iは0とイコール";
        break;
    case 1:
        echo "iは1とイコール";
        break;
    case 2:
        echo "iは2とイコール";
        break;
}
?>


上記コード実行結果



caseが一致するとbreakで抜けます。

The following two tabs change content below.
AKIRA

AKIRA

上尾市在住の、リサイクルショップで働くサラリーマン。 Twitter・Facebookやってます。 小心者なので、誰か声かけてくれると嬉しいです。
スポンサーリンク
スポンサーリンク
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です