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
この記事が気に入ったらサポートをしてみませんか?