mirror of
https://github.com/php/php-src.git
synced 2024-09-25 20:07:26 +00:00
132 lines
2.3 KiB
Plaintext
132 lines
2.3 KiB
Plaintext
|
--TEST--
|
||
|
SPL spl_autoload() and friends
|
||
|
--INI--
|
||
|
include_path=.
|
||
|
--FILE--
|
||
|
<?php
|
||
|
|
||
|
echo "===EMPTY===\n";
|
||
|
|
||
|
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
|
||
|
{
|
||
|
spl_autoload_extensions(".inc");
|
||
|
var_dump(class_exists("TestClass", true));
|
||
|
}
|
||
|
catch(Exception $e)
|
||
|
{
|
||
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
||
|
}
|
||
|
|
||
|
echo "===REGISTER===\n";
|
||
|
|
||
|
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===
|
||
|
%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()===
|
||
|
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===
|