#namespaceの基本覚える
例を参考に読み解いていく
例)1~3
<?php
//例1
namespace Eat;
class Fruit{
public static function want($fruit){
print "あなたの食べたい果物は{$fruit}です\n";
}
}
\Eat\Fruit::want('バナナ');// あなたの食べたい果物はバナナです
//例2
namespace Eat\Eating;
class Fruit{
public static function want($fruit){
print "Its{$fruit}! do you want to eat?\n";
}
}
\Eat\Eating\Fruit::want('りんご');// Itsりんご! do you want to eat?
\Eat\Fruit::want('バナナ');// あなたの食べたい果物はバナナです
//例3
use \Eat\Eating\Fruit as Eating;
Eating::want('スイカ');//Itsスイカ! do you want to eat?
use \Eat\Fruit as Bite;
Bite::want('メロン');// あなたの食べたい果物はメロンです
全体の結果
/*
あなたの食べたい果物はバナナです
Itsりんご! do you want to eat?
あなたの食べたい果物はバナナです
Itsスイカ! do you want to eat?
あなたの食べたい果物はメロンです
*/
###例1について
・namespaceはclassの定義の前に記述する
・呼び出す際は\Eat\Fruit::want('バナナ');
のように
バックスラッシュ + namespace名 + バックスラッシュ + クラス名 + :: メソッド名
で呼び出す。
###例2について
・名前空間を使用しないと同じクラス名を使用することは出来ないがnamespace Eat\Eating;
と
新しい名前空間を記述することでクラス名Fruit
が使用出来るようになっている。
・呼び出す方法は例1と同じ
###例3について
毎回バックスラッシュ + namespace名 + バックスラッシュ + クラス名 + :: メソッド名
で呼び出すのは記述が大変。そこでuseを使用する
・use \Eat\Eating\Fruit as Eating;
のように定義する
・定義したものはEating::want('スイカ');
のようにuse名 + :: + メソッド名
で呼び出せる。
この考え方はフレームワークでも役立つので押さえておく。