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

Reply via email to