【PHP】useを使う場面

目次

1. クロージャ

クロージャでuseを使用する場合、クロージャの外で定義された変数をクロージャ内に引き継ぐときに使用される

$eを呼ぶとHTMLの改行文字を付加してechoをするサンプル

1
2
3
4
5
6
7
8
$eol = '<br>';

// 1行前で定義した改行文字をクロージャ内で使用する
$e = function($message) use ($eol){
echo $message,$eol;
};

$e('TEST');

2. トレイト

コピーアンドペーストして使用しているような汎用的なメソッドをtraitというクラスのようなものに括りだしていろいろなところで使おうというもの

トレイトを使用したいクラスでuse トレイト名として使用する

注意 : トレイトは密結合になるので、オブジェクト指向的には使用しないほうがいい

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
trait test
{
private function echoTest()
{
echo 'test';
}
}

class main
{
use test;

public function __construct()
{
$this->echoTest();
}
}

$m = new main();

3. 使用するnamespaceのインポート

事前にuse 名前空間の完全修飾名\クラス名を定義しておくことで、別のnamespaceにあるクラスをnew(インスタンス化)するときに、名前空間を繰り返し書かなくていいようにする

useを使用しない場合

名前空間 : MyApp\Controller\Test
クラス名 : TestController

1
2
//  インスタンス化する
$testController = new MyApp\Controller\Test\TestController();

useを使用している場合

名前空間 : MyApp\Controller\Test
クラス名 : TestController

1
2
3
4
5
//  ネームスペースのインポート
use MyApp\Controller\Test\TestController;

// インスタンス化する
$testController = new TestController();
Author

Daiki Iijima

Posted on

2021-05-20

Updated on

2024-04-17

Licensed under