1--TEST-- 2Phar object: add file 3--EXTENSIONS-- 4phar 5--INI-- 6phar.readonly=0 7phar.require_hash=0 8--FILE-- 9<?php 10 11$pharconfig = 0; 12 13require_once 'files/phar_oo_test.inc'; 14 15$phar = new Phar($fname); 16 17$phar['hi/f.php'] = 'hi'; 18var_dump(isset($phar['hi'])); 19var_dump($phar['hi']); 20var_dump(isset($phar['hi/f.php'])); 21echo $phar['hi/f.php']; 22echo "\n"; 23 24$phar->setInfoClass('SplFileObject'); 25$phar['hi/f.php'] = 'hi'; 26var_dump(isset($phar['hi'])); 27try { 28 var_dump($phar['hi']); 29} catch (Throwable $e) { 30 echo $e::class, ': ', $e->getMessage(), PHP_EOL; 31} 32var_dump(isset($phar['hi/f.php'])); 33echo $phar['hi/f.php']; 34echo "\n"; 35 36?> 37--CLEAN-- 38<?php 39unlink(__DIR__ . '/files/phar_oo_011.phar.php'); 40__halt_compiler(); 41?> 42--EXPECTF-- 43bool(true) 44object(PharFileInfo)#%d (2) { 45 ["pathName":"SplFileInfo":private]=> 46 string(%d) "phar://%s/phar_oo_011.phar.php/hi" 47 ["fileName":"SplFileInfo":private]=> 48 string(2) "hi" 49} 50bool(true) 51phar://%s/phar_oo_011.phar.php/hi/f.php 52bool(false) 53LogicException: Cannot use SplFileObject with directories 54bool(true) 55hi 56