mirror of
https://github.com/php/php-src.git
synced 2024-12-12 19:33:31 +08:00
139 lines
2.5 KiB
PHP
Executable File
139 lines
2.5 KiB
PHP
Executable File
--TEST--
|
|
SPL: spl_autoload() and friends
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded("spl")) print "skip"; ?>
|
|
--INI--
|
|
include_path=.
|
|
--FILE--
|
|
<?php
|
|
|
|
echo "===EMPTY===\n";
|
|
|
|
var_dump(spl_autoload_extensions());
|
|
|
|
try
|
|
{
|
|
spl_autoload("TestClass");
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
|
|
$test_exts = array(NULL, "1", ".inc,,.php.inc", "");
|
|
|
|
foreach($test_exts as $exts)
|
|
{
|
|
echo "===($exts)===\n";
|
|
try
|
|
{
|
|
spl_autoload("TestClass", $exts);
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
spl_autoload_extensions(".inc,.php.inc");
|
|
spl_autoload("TestClass");
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
|
|
function TestFunc1($classname)
|
|
{
|
|
echo __METHOD__ . "($classname)\n";
|
|
}
|
|
|
|
function TestFunc2($classname)
|
|
{
|
|
echo __METHOD__ . "($classname)\n";
|
|
}
|
|
|
|
echo "===SPL_AUTOLOAD()===\n";
|
|
|
|
spl_autoload_register();
|
|
|
|
try
|
|
{
|
|
var_dump(spl_autoload_extensions(".inc"));
|
|
var_dump(class_exists("TestClass", true));
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
|
|
echo "===REGISTER===\n";
|
|
|
|
spl_autoload_unregister("spl_autoload");
|
|
spl_autoload_register("TestFunc1");
|
|
spl_autoload_register("TestFunc2");
|
|
spl_autoload_register("TestFunc2"); /* 2nd call ignored */
|
|
spl_autoload_extensions(".inc,.class.inc"); /* we do not have spl_autoload_registered yet */
|
|
|
|
try
|
|
{
|
|
var_dump(class_exists("TestClass", true));
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
|
|
echo "===LOAD===\n";
|
|
|
|
spl_autoload_register("spl_autoload");
|
|
var_dump(class_exists("TestClass", true));
|
|
|
|
echo "===NOFUNCTION===\n";
|
|
|
|
try
|
|
{
|
|
spl_autoload_register("unavailable_autoload_function");
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
===EMPTY===
|
|
string(9) ".inc,.php"
|
|
%stestclass.inc
|
|
Exception: Class TestClass could not be loaded
|
|
===()===
|
|
Exception: Class TestClass could not be loaded
|
|
===(1)===
|
|
Exception: Class TestClass could not be loaded
|
|
===(.inc,,.php.inc)===
|
|
%stestclass
|
|
%stestclass.php.inc
|
|
Exception: Class TestClass could not be loaded
|
|
===()===
|
|
Exception: Class TestClass could not be loaded
|
|
Exception: Class TestClass could not be loaded
|
|
===SPL_AUTOLOAD()===
|
|
string(4) ".inc"
|
|
Exception: Class TestClass could not be loaded
|
|
===REGISTER===
|
|
TestFunc1(TestClass)
|
|
TestFunc2(TestClass)
|
|
bool(false)
|
|
===LOAD===
|
|
TestFunc1(TestClass)
|
|
TestFunc2(TestClass)
|
|
%stestclass.class.inc
|
|
bool(true)
|
|
===NOFUNCTION===
|
|
Exception: Function 'unavailable_autoload_function' not found
|
|
===DONE===
|