PHPのspl_autoload_register()
関数は、未定義のクラスやインターフェイスを使おうとすると、自動的に呼び出す(オートローディングする)ようにする組み込み関数。
定義
書式
論理型 = spl_autoload_register(
登録したいオートロード関数[,
オートロード関数を登録できなかったとき、例外をスローするか]
)
登録したいオートロード関数[,
オートロード関数を登録できなかったとき、例外をスローするか]
)
戻り値
成功するとTRUE
を、失敗するとFALSE
を返す。
使い方
function 関数名( 引数 ) { // 引数には、クラス名が渡される
// クラスを定義しているファイルを読み込むなどの処理文を書く
// 例えば
include 'classes/' . 引数 . '.class.php';
// この場合、「クラス名」のクラスを定義してある「classes/クラス名.class.php」を読み込む
}
spl_autoload_register( '関数名' );
$変数名 = new クラス名();
// クラスを定義しているファイルを読み込むなどの処理文を書く
// 例えば
include 'classes/' . 引数 . '.class.php';
// この場合、「クラス名」のクラスを定義してある「classes/クラス名.class.php」を読み込む
}
spl_autoload_register( '関数名' );
$変数名 = new クラス名();
サンプル
<?php
function autoload_classes( $class ) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register( 'autoload_classes' );
$var_class = new taxClass();
echo '税込:' . $var_class->func_tax( 100 ) . '円<br />';
echo '税率:' . $var_class->varTax * 100 . '%<br />';
?>
function autoload_classes( $class ) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register( 'autoload_classes' );
$var_class = new taxClass();
echo '税込:' . $var_class->func_tax( 100 ) . '円<br />';
echo '税率:' . $var_class->varTax * 100 . '%<br />';
?>
↓↓↓出力結果↓↓↓
税込:105円
税率:5%
税率:5%
読み込むPHPファイル
サンプルで読み込む「classes/taxClass.class.php」の内容。
<?php
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
?>
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
?>