1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
--TEST--
SPL: SplFileInfo cloning
--FILE--
<?php
function test($name, $lc, $lp)
{
static $i = 0;
echo "===$i===\n";
$i++;
$o = new SplFileInfo($name);
var_dump($o);
$c = clone $o;
var_dump($c);
var_dump($o === $c);
var_dump($o == $c);
var_dump($o->getPathname() == $c->getPathname());
try {
$f = new SplFileObject($name);
var_dump($name);
var_dump($f->getPathName());
$l = substr($f->getPathName(), -1);
var_dump($l != '/' && $l != '\\' && $l == $lc);
var_dump($f->getFileName());
$l = substr($f->getFileName(), -1);
var_dump($l != '/' && $l != '\\' && $l == $lc);
var_dump($f->getPath());
$l = substr($f->getPath(), -1);
var_dump($l != '/' && $l != '\\' && $l == $lp);
} catch (LogicException $e) {
echo "LogicException: ".$e->getMessage()."\n";
}
try {
$fo = $o->openFile();
var_dump($fo->getPathName(), $fo->getFileName(), $fo->getPath());
} catch (LogicException $e) {
echo "LogicException: ".$e->getMessage()."\n";
}
}
test(__DIR__ . '/' . 'fileobject_001a.txt', 't', substr(__DIR__,-1));
test(__DIR__ . '/', substr(__DIR__,-1), 'l');
test(__DIR__, substr(__DIR__,-1), 'l');
?>
--EXPECTF--
===0===
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "fileobject_001a.txt"
}
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "fileobject_001a.txt"
}
bool(false)
bool(true)
bool(true)
%s(%d) "%sfileobject_001a.txt"
string(%d) "%sfileobject_001a.txt"
bool(true)
string(19) "fileobject_001a.txt"
bool(true)
string(%d) "%stests%eSplFileObject"
bool(true)
string(%d) "%sfileobject_001a.txt"
string(19) "fileobject_001a.txt"
string(%d) "%stests%eSplFileObject"
===1===
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "%s"
}
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "%s"
}
bool(false)
bool(true)
bool(true)
LogicException: Cannot use SplFileObject with directories
LogicException: Cannot use SplFileObject with directories
===2===
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "%s"
}
object(SplFileInfo)#%d (2) {
["pathName":"SplFileInfo":private]=>
string(%d) "%s"
["fileName":"SplFileInfo":private]=>
string(%d) "%s"
}
bool(false)
bool(true)
bool(true)
LogicException: Cannot use SplFileObject with directories
LogicException: Cannot use SplFileObject with directories
|