0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

class 基本 名前空間

Last updated at Posted at 2021-03-12

#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名 + :: + メソッド名で呼び出せる。

この考え方はフレームワークでも役立つので押さえておく。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?