山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

PHP 学習 part. 4

制御構造と関数

PHP の制御構造と関数について学びます。

for, foreach

<?php

$a = array(1, 2, 3, 4);
foreach ($a as $i) {
  echo $i, PHP_EOL;
}

for ($i = 0, $end = count($a); $i < $end; $i++) {
  echo $a[$i], PHP_EOL;
}

反復処理での変数の解放

PHP ではブロックスコープの変数はそれ以降の行でも参照することができるので、反復処理などで使用した変数は解放しておく必要があります。

<?php

$fruits = array(
  "apple" => "リンゴ",
  "orange" => "オレンジ",
  "banana" => "バナナ",
);

foreach ($fruits as $fruit) {
  echo $fruit, PHP_EOL;
}
// $fruit の参照を解放しておく
unset($fruit);

while

条件式が真のときに反復処理を行う while 文です。

<?php
$a = 1;
while ($a != 5) {
  echo $a, PHP_EOL;
  $a = rand(0, 10);
}

break

反復処理から抜け出すために使われる break 文です。

<?php
$num = range(0, 9);
shuffle($num);
foreach ($num as $i) {
  if ($i === 4) break;
  echo $i, PHP_EOL;
}

switch 文

僕はあまり switch 文を使わないんですが、if-else 文よりも簡潔に記述することができます。

<?php

$month = date('m');
echo $month, PHP_EOL;

switch ($month) {
    case '03':
        echo "春休みです", PHP_EOL;
        break;
    case '08':
        echo "夏休みです", PHP_EOL;
        break;
    default:
        echo "長期休暇ではありません", PHP_EOL;
        break;
}

require

外部のファイルを利用するときには require を使います。

dice.php
<?php

class Dice
{
    protected $num;
    function __construct($n)
    {
        $this->num = $n;
    }

    function getNumber()
    { 
        return rand(1, $this->num);
    }
}
program.php
<?php
require "dice.php";

$dice = new Dice(6);

$i = 10;
while ($i--) {
    echo $dice->getNumber(), PHP_EOL;
}

パーフェクトPHP

パーフェクトPHP