test.php
<?php
$user = new User("kure");
echo $user->getName();
User.class.php
<?php
class User{
private $name;
public function __construct(string $name){
$this->name = $name;
}
public function getName(){
return $this->name;
}
}
以上の場合、クラスのファイル(User.class.php)が読み込まれずに、以下のエラーが出る
PHP Fatal error: Uncaught Error: Class 'User' not found in
以下のように __autoload
関数を定義すれば、ファイル名を追って読み込まれる。関数の引数$nameにはインスタンス化しようとしたクラス名が渡される。
test.php
<?php
function __autoload($name){
$filename = $name.".class.php";
require $filename;
}
$user = new User("kure");
echo $user->getName();