PHP基礎

echo を簡単に記述 <?= $id; ?>

	<td><a href="edit.php"><?php echo $id ?></a></td>
   //下記に書き換えできる
	<td><a href="edit.php"><?= $id; ?></a></td>

URLを取得(念のためサニタイズしておきます。)

$url = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8');

文字列を日付にフォーマット

<?php
 $time_value = '201703220134';
 echo date('Y年m月d日 H:i',strtotime($time_value));
?>
//2017年03月22日 01:34
<?php
    foreach($newsList as $news){
     $date_format = date('Y/m/d',strtotime($news["date"]));
     echo "<li><span>{$date_format}</span><a href='{$url}?{$news["date"]}'>{$news["title"]}</a></li>";
   }
 ?>
 //2021/06/21 営業時間短縮のお知らせ


パラメーターを指定してURLを生成 http_build_query

<?php
$newsDate = "20190810";
$params = array('id' => $newsDate);
$newsId = http_build_query($params);
?>
<li><span>2019/08/10</span>
<a href="<?= "{$url}?{$newsId}"; ?>">『url?id=20190810』にリンク</a>
</li>

遷移元のURL 取得


// 遷移元URL
$motourl = $_SERVER['HTTP_REFERER'];

一定時間経過後、ページ遷移

header( "refresh:5;url=wherever.php" );
//これは、headerを設定するphpの方法です。
//これにより、5秒でwherever.phpにリダイレクトされます

三項演算子 条件式 ? 式1 : 式2 TRUEでなら式1、FALSEなら式2を返す。

 <?php
 $title =  $url === $topUrl ?  "{$shop} |高山市本町4丁目" :  "{$pageTitle} |{$shop}";
 echo "<title>{$title}</title>";
 ?>

Switch文

 <?php

   // 変数$numを定義し、好きな数字を代入
   $num = 715;
   
   // 変数$remainderを定義し、変数$numを3で割った時の余りを代入
   $remainder = $num % 3;

   // switch文
   switch($remainder){
     case 0:
      echo "大吉です。";
      break;
     case 1:
       echo "中吉です。";
       break;
     case 2:
       echo "小吉です。";
       break;
     default:
       echo "凶です。";
       break;
   }
   
 
 ?>

配列 

  <?php
   // 配列を作成
   $colors = ["赤","青","黄"];
   echo $colors[0];
   
   //$colorsの末尾に追加
   $colors[] = "白";
   echo $colors[3];
 ?>

結果:白

  <?php

   // 連想配列
   $scores = [
     "数学"=>70,
     "英語"=>90,
     "国語"=>80,
     ];
     
   $scores["国語"]  += 5;
   
   echo $scores["国語"];
   
   
 ?>

結果:85

<?php
	
	$x_array = [
		['id'=>'3','img'=>'jpg','name'=>'seiko'],
		['id'=>'5','img'=>'png','name'=>'seiko2'],
		['id'=>'9','img'=>'xxx','name'=>'seiko3'],
	];
	
	foreach($x_array as $x){
		echo $x["id"];
		echo $x["img"];
		echo $x["name"];
	}
	
?>

while文で偶数だけ100まで表示

    // 変数$iを定義
   $i = 2;
   
   // while文
   while($i <= 100){
     if($i % 2 == 0){
       echo $i.'<br>';
     }
     $i++;
   }

結果:2,4,6,。。。。100

for文 ループから抜ける break

    for($i=1;$i<=1000;$i++){
     
     if($i>500){
       break;
     }
     echo $i.'<br>';
   }

for文 ある条件は飛ばす continue

    for($i=1;$i<=1000;$i++){
     if($i % 3 == 0){
       continue;
     }
     echo $i.'<br>';
   }

foreach

    $scores = array('数学' => 70, '英語' => 90, '国語' => 80);

   // foreach文
   foreach($scores as $key => $value){
     echo $key.'は'.$value.'点です。';
   }

関数

    $str = 'progate';

   // strlenを用いて$strの長さをecho
   echo strlen($str);
   
   echo '<br>';
   
   $array = array('HTML', 'CSS', 'PHP');

   // countを用いて$arrayの要素数をecho
   echo count($array);
   
   echo '<br>';
   
   // randを用いて10から15までのランダムな数字をecho
   echo rand(10,15);

関数を自作

    // 関数helloを定義
   function hello(){
     echo "Hello, world!";
   }
   
   // 関数helloを呼び出し
   hello();
   
   echo '<br>';
   // 関数printRectangleAreaを定義
   function printRectangleArea($height,$width){
     echo $height * $width;
   }
   
   // 引数を(5, 10)としてprintRectangleAreaを呼び出し
   printRectangleArea(5,10);

関数の戻り値

    // 関数getCircleAreaを定義
   function getCircleArea($radius){
     return $radius * $radius * 3;
   }
   
   // 関数getCircleAreaを呼び出して、戻り値を変数$circleAreaに代入
   $circleArea = getCircleArea(5);
   
   // $circleAreaをecho
   echo $circleArea;

関数の中で変数を使うとき → 『global 変数』の宣言が必要

function pageTop(){
 global $topUrl;
 echo "<div id='pagetop-container'><div id='pagetop_btn'><img src='{$topUrl}/images/risu.png' alt='to-top'></div></div>";
}

フォーム

index.php

      <form method="post" action="sent.php">
       <div class="form-item">名前</div>
       <input type="text" name="name">

       <div class="form-item">年齢</div>
       <select name="age">
         <option value="未選択">選択してください</option>
         <!-- for文を用いて6歳から100歳までをoptionで選べるように -->
         <?php 
           for($i=6;$i<=100;$i++){
             echo "<option value='{$i}'>{$i}</option>";
           }
         ?>
       </select>

       <div class="form-item">お問い合わせの種類</div>
       <?php 
         $types = array('Progateに関するお問い合わせ', 'Progateに対する意見', '採用に関するお問い合わせ', '取材・メディア関連のお問い合わせ', '料金に関するお問い合わせ', 'その他');
        ?>
  
       <select name="category">
         <option value="未選択">選択してください</option>
         <?php
         foreach($types as $type){
           
           echo "<option value='{$type}'>{$type}</option>";
         }
         ?>
       </select>
       
       
       <div class="form-item">内容</div>
       <textarea name="body"></textarea>

       <input type="submit" value="送信">
     </form>

sent.php

  <div class="main">
   <div class="thanks-message">お問い合わせいただきありがとうございます。</div>
   <div class="display-contact">
     <div class="form-title">入力内容</div>

     <div class="form-item">■ 名前</div>
     <?php echo $_POST['name']; ?>

     <div class="form-item">■ 年齢</div>
     <?php echo $_POST['age']; ?>

     <div class="form-item">■ お問い合わせの種類</div>
     <?php echo $_POST['category']; ?>

     <div class="form-item">■ 内容</div>
     <?php echo $_POST['body']; ?>
   </div>
 </div>

クラス①

<?php

class Menu{
 private $name;
 private $price;

 public function __construct($name,$price)
 {
   $this->name = $name;
   $this->price = $price;
 }

 public function getName(){
   return $this->name;
 }

 public function getPrice(){
   return $this->price;
 }
};

?>

クラス②データ


$blackTea = new Menu('紅茶','600円〜');
$chineseTea = new Menu('中国茶','700円〜');
$coffee = new Menu('コーヒー','400円〜');
$hearbTea = new Menu('ハーブティー','600円〜');
$decafe = new Menu('デカフェ紅茶','600円〜');
$ruibos = new Menu('フレーバー付ルイボスティー','600円');

$menus = [$blackTea,$chineseTea,$coffee,$hearbTea,$decafe,$ruibos];

クラス③html

<ul>
 <?php foreach($menus as $menu): ?>
 <li><?= $menu->getName(); ?><span><?= $menu->getPrice(); ?></span></li>
 <?php endforeach; ?>
</ul>

クラスの継承

class Drink extends Menu{

}

$blackTea = new Drink('紅茶','600円〜');
$chineseTea = new Drink('中国茶','700円〜');
$coffee = new Drink('コーヒー','400円〜');
$hearbTea = new Drink('ハーブティー','600円〜');
$decafe = new Drink('デカフェ紅茶','600円〜');
$ruibos = new Drink('フレーバー付ルイボスティー','600円');

$drinks = [$blackTea,$chineseTea,$coffee,$hearbTea,$decafe,$ruibos];

クラスプロパティ

定義する時: staticをつける

アクセスする時: クラス名::$クラスプロパティ名

class Menu{
    public static $count = 'curry';//staticをつけるとクラスプロパティに。
}
echo 'メニューは'.Menu::$count.'です。';//アクセス

クラス内でクラスプロパティにアクセスする時:self::$クラスプロパティ名

class Menu{
    public $name;
    public static $count = 0; //クラスプロパティ
    public function __construct($name){
        $this->name;
        self::$count++; //クラスプロパティにアクセス self::を使う(selfはMenuクラス自身のこと)
    }
}

$menu1 = new Menu('Curry');
$menu2 = new Menu('Pasta');

echo Menu::$count; //結果『2』

クラスメソッド

staticを用いて定義、クラス名::クラスメソッド名で呼び出し

<?php
class Menu{
 private $name;
 private $price;
 private static $className;
 private static $classImage;

 public function __construct($name,$price)
 {
   $this->name = $name;
   $this->price = $price;
 }

 public function getName(){
   return $this->name;
 }

 public function getPrice(){
   return $this->price;
 }
 //クラスメソッド(staticをつける)
 public static function getClassName($className){
   return self::$className = $className;
 }
 //クラスメソッド(staticをつける)
 public static function getClassImage($classImage,$alt){
   self::$classImage = $classImage;
   echo "<img src='images/{$classImage}.png' alt='{$alt}' />";
 }
};

class Drink extends Menu{}

$blackTea = new Drink('紅茶','600円〜');
$chineseTea = new Drink('中国茶','700円〜');
$coffee = new Drink('コーヒー','400円〜');
$hearbTea = new Drink('ハーブティー','600円〜');
$decafe = new Drink('デカフェ紅茶','600円〜');
$ruibos = new Drink('フレーバー付ルイボスティー','600円');

$drinks = [$blackTea,$chineseTea,$coffee,$hearbTea,$decafe,$ruibos];
?>

<div class="col-sm-4 each-menu">
 <div class="menu-icon">
   <?php Drink::getClassImage('icon_teacup','ティーカップ') ?> //クラスメソッドにアクセス
 </div>
 <!--menu-icon-->
 <div class="menu-title">
   <?= Drink::getClassName('Drink'); ?>//クラスメソッドにアクセス
 </div>
 <!--menu-title-->
 <div class="menu-text">
   <ul>
     <?php foreach($drinks as $drink): ?>
     <li><?= $drink->getName(); ?><span><?= $drink->getPrice(); ?></span></li>
     <?php endforeach; ?>
   </ul>
 </div>
</div>



aa






この記事が気に入ったらサポートをしてみませんか?