ステップアップ備忘録

学習用備忘録

PHPの勉強 ⑤

PHPでプログラムを書く(dotinstall)

環境はローカル開発環境で行っている

プログラムの流れ(ビンゴカードを作る)

まずはvagrantを立ち上げ、SSHで接続、ファイル転送ツールからファイルを作成

HTMLの構文<!DOCTYPE>~</html>までを最初に記入。

<meta>要素で文字コードを設定後に、タイトルを設定する。
<div id ="container">→中央ぞろえに設定
<tr> →tableを作成
<th> →tableheaderを設定
<td> → table dataを設定
<td>1</td>→値の1は仮。後でプログラムで自動生成し、ランダムに表示する。
</div>

一度ビルトインサーバで確認してみる。

次にCSS(各タグ項目のスタイル)を調整
HTML本文中に
<link rel="stylesheet" href="名前.css>
を記述。</head>の前に。

ファイル転送ツールからcssを作成。

スタイルシートを定義
(色は若ならなければ見本がある)

次に配列を生成(配列数は[0]~[4]の5つ)

<?php
$nums = ; →配列の定義
for($i = 0; $i < 5; $i++){ →初期値を0として、$iの値が5より小さい間ループする。
 $col = range($i*15+1, $i*15+15);←配列を生成
 shufful($col); 生成した配列をシャッフルする
 $nums[i] = array_slice($col,0,5); →シャッフルした数字をランダムに選ぶ

}

function h($s){ return htmlspecialchars($s, ENT_QUOTES,'UTF-8'); }←エスケープ関数

}

$numsは配列の配列なので2重ループを設定する。

<?php for($i = 0; $i < 5; $i++; ?>

<tr>
</tr>
<?php endfor; ?>

<?php for($j = 0; $j < 5; $i++; ?>

<td>

</td>

<?php endfor; ?>

<td>1</td> → <td>$nums</td>に

最後に
<?php
$nums = ; →配列の定義
for($i = 0; $i < 5; $i++){ →初期値を0として、$iの値が5より小さい間ループする。
 $col = range($i*15+1, $i*15+15);←配列を生成
 shufful($col); 生成した配列をシャッフルする
 $nums[i] = array_slice($col,0,5); →シャッフルした数字をランダムに選ぶ

}

$nums[2][2]="FREE";→配列[2][2]のところFREEに変えて固定する。


function h($s){ return htmlspecialchars($s, ENT_QUOTES,'UTF-8'); }←エスケープ関数

}

を入れる。

・オブジェクト指向での組み換え
前のHTML文に書き込んだPHPを用いて、オブジェクト指向で組み替える(ファイルも分割する)

<?php require_once(__DIR__,'/config.php');←config.php(設定ファイル)をよみこんでディレクトリへ
require_once(__DIR__,'/Bingo.php');←Bingo.php(実際の処理に関するファイル)を読み込んでディレクトリへ
   $bingo = new MyApp\Bingo\();←名前空間の設定
   $nums = $bigo -> create();クリエイトメソッドにまとめる
?>

config.php
<?php
ini_set('display_errors, 1);→エラーを画面に表示する。ini_setは設定したオプションの値を設定する。
require_once(__DIR__,'/functions.php')→function.phpを読み込み
?>

function.php

<?php
function h($s){ return htmlspecialchars($s, ENT_QUOTES,'UTF-8');} ?>

HTML文書の中に書いたエスケープ関数を持ってくる。

Bingo.php

<?php

namespace MyApp;

class Bingo {

public function create(){

$nums = []; →配列の定義
for($i = 0; $i < 5; $i++){ →初期値を0として、$iの値が5より小さい間ループする。
 $col = range($i*15+1, $i*15+15);←配列を生成
 shufful($col); 生成した配列をシャッフルする
 $nums[i] = array_slice($col,0,5); →シャッフルした数字をランダムに選ぶ

}

$nums[2][2]="FREE";→配列[2][2]のところFREEに変えて固定する。

return $nums;→$numsの値を返す。

}

まとめ

一度HTMLで作成後にそれぞれがどのような動きをするものかを考えてからファイルを分けていくと、最初はわかりやすいかもしれない。