Quantcast
Channel: PHP7.4タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 113

PHPでClassをrequireせずに使う

$
0
0

Laravelのrequest()とかがどうやって呼ばれてるのかを調べていくうちに辿り着いたのでメモがてら。

Classは簡単に読み込めるけど、Functionは一筋縄ではいかなさそう。

ついでにClassに好き勝手プロパティ増やせることも発見した。

autoloaderを実装

spl_autoload_registerを使う。Laravelはcomposerが上手いことやってくれてるっぽかった

bootstrap.php
<?functionregist(){spl_autoload_register(function(){require'./Hoge.php';require'./Piyo.php';});}

使いたいクラス

適当に用意

Hoge.php
<?classHoge{public$hoge;}
Piyo.php
<?classPiyo{public$piyo;}

autoloaderを呼んで使う

ついでに好き勝手にプロパティも生やす

test.php
<?require'./bootstrap.php';// ここでクラスをautoloadするregist();// どこからも呼んでないけど$h=newHoge;// 生やせる$h->fuga="aaa";$h->hogepiyo="bbb";// 使える$p=newPiyo;$p->fuga="aaa";$p->hogepiyo="bbb";var_dump($h,$p);/*
結果

class Hoge#2 (3) {
  public $hoge =>
  NULL
  public $fuga =>
  string(3) "aaa"
  public $hogepiyo =>
  string(3) "bbb"
}

class Piyo#3 (3) {
  public $piyo =>
  NULL
  public $fuga =>
  string(3) "aaa"
  public $hogepiyo =>
  string(3) "bbb"
}

*/

Viewing all articles
Browse latest Browse all 113

Trending Articles