PHP 学習 part. 9
クラスとオブジェクト
今回でクラスとオブジェクトは終わりです。
名前空間
名前空間はライブラリなどで名前の衝突を避けるためにりようされます。クラス名などを冗長にせずに定義できまうす。
Apple.php
<?php namespace Food\Fruits; class Apple { private $color = "red"; public function getColor() { return $this->color; } }
program.php
<?php require_once 'Apple.php'; $apple = new Food\Fruits\Apple(); echo $apple->getColor(), PHP_EOL;
例外処理
try-catch 文を使った例外処理です。
<?php function div($v1, $v2) { if ($v2 === 0){ throw new Exception("0除算が発生しています"); } return $v1 / $v2; } try { $x = div(4, 0); } catch(Exception $e) { echo $e->getMessage(), PHP_EOL; }
参照
オブジェクトの破棄について理解するためには参照の知識が必要になります。参照は変数のもつ値の格納領域を示します。
参照代入演算子 &=
<?php $a = 77; $b =& $a; $b++; echo $a, PHP_EOL; // 78
引数を参照で受け取る
<?php $a = 77; $b =& $a; $b++; echo $a, PHP_EOL; // 78 function array_double($array) { for ($i = 0, $size = count($array); $i < $size; $i++){ $array[$i] *= 2; } } // 参照で受け取る function array_ref_double(&$array) { for ($i = 0, $size = count($array); $i < $size; $i++){ $array[$i] *= 2; } } $a = array(1, 2, 3); array_double($a); foreach ($a as $i) { echo $i, PHP_EOL; } $b = array(1, 2, 3); array_ref_double($b); foreach ($b as $i) { echo $i, PHP_EOL; }
参照で引数を受け取らない場合、配列に変更を加えても変更は保持されないので、参照を渡します。
本
- 作者: 小川雄大,柄沢聡太郎,橋口誠
- 出版社/メーカー: 技術評論社
- 発売日: 2014/10/31
- メディア: Kindle版
- この商品を含むブログを見る
感想
PHP のクラスとオブジェクトについて学びました。PHP でもオブジェクト指向のプログラミングを行うことができるので、デザインパターンの学習も再開したいと思います。