Edit report at http://bugs.php.net/bug.php?id=52970&edit=1
ID: 52970 User updated by: ymdf at qq dot com Reported by: ymdf at qq dot com Summary: The Bug of unset -Status: Feedback +Status: Open Type: Bug Package: Output Control Operating System: windows/linux/... PHP Version: 5.3.3 Block user comment: N New Comment: index.php <? require_once 'sys/Rout.php'; $rout = new Rout(); $rout->__destruct(); unset($rout); ?> ___________________________________________________________ sys/Rout.php <? class Rout { public function __construct(){ $this->__destruct(); } public function __destruct() { echo '<br>',dirname(__FILE__); $path = 'App/controls/IndexControl.php'; echo '<br>',$path.' '; echo file_exists($path) ? 'Work' : 'Change includ_path'; require_once $path; } } ?> ____________________________________________________________ output: D:\Zend\Apache2\htdocs\Zanfsys\Zanf App/controls/IndexControl.php Work D:\Zend\Apache2\htdocs\Zanfsys\Zanf App/controls/IndexControl.php Work D:\Zend\Apache2\htdocs\Zanfsys\Zanf App/controls/IndexControl.php Change includ_path _________________________________________________________ error: [02-Oct-2010 19:26:09] PHP Warning: require_once(App/controls/DefaultControl.php) [<a href='function.require- once'>function.require-once</a>]: failed to open stream: No such file or directory in D:\Zend\Apache2\htdocs\adminsys\sys\Zanf_Rout.php on line 121 [02-Oct-2010 19:26:09] PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'App/controls/DefaultControl.php' (include_path='.') in D:\Zend\Apache2\htdocs\adminsys\sys\Zanf_Rout.php on line 121 Previous Comments: ------------------------------------------------------------------------ [2010-10-02 20:17:32] cataphr...@php.net Sorry, I didn't understand the issue here. The location against which relative paths are calculated changes? How? Please provide a list of steps necessary to reproduce the problem (and write syntactically correct sentences if possible). ------------------------------------------------------------------------ [2010-10-02 15:49:49] ymdf at qq dot com in_run: iswork in_destruct: iswork out $rout->run: iswork out $rout->destruct: iswork out unset($rout): error ------------------------------------------------------------------------ [2010-10-02 15:47:52] ymdf at qq dot com Description: ------------ Destructor if the class has a path variable $path = 'asd.php', Uset to call the function with a class destructor that address the relative position will change. Test script: --------------- index.php <?php require_once 'Router.php'; $route = new Router(); echo '<br>out $rout->run:'; $route->run(); echo '<br>out $rout->destruct:'; $route->__destruct(); echo '<br>out unset($rout):'; unset($route); ?> Router.php class Router { private function __construct() { $this->run(); echo '<br>in_destruct:'; $this->__destruct(); } public function run() { $f = 'App/controls/indexControl.php'; if (file_exists($f)) echo ' work'; else echo ' serror'; } public function __destruct(){ $f = 'App/controls/indexControl'.php'; if (file_exists($f)) echo ' work'; else echo ' error'; } } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52970&edit=1