Re: include file in a class with global/parent scope?
| From: | Daniel Kolbo | Date: | Tue, 16 Jun 2009 11:12:14 +0000 |
| Subject: | Re: include file in a class with global/parent scope? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294072@lists.php.net to get a copy of this message | ||
Martin Scotta wrote:
> Where is $vars? there is no $vars in your code...
>
> You can extract all the global space in the CScope method, it's quite
> simple, but less performant.
>
>
> class CScope {
>
> public $vars = 'class scope\n';
>
> function cinclude($filename) {
> extract( $GLOBALS );
> include('vars.php');
> echo "In class $vars\n";
> }
> }
>
> On Sun, Jun 14, 2009 at 1:41 PM, Daniel Kolbo <kolb0057@umn.edu
> <mailto:kolb0057@umn.edu>> wrote:
>
> Hello,
>
> I understand the why $vars is not in the global scope, but i was
> wondering if there was a way from within the class file to include a
> file in the parent's scope?
>
> i tried ::include('vars.php'), parent::include('vars.php'), but this
> breaks syntax...
>
> Please consider the following three files:
>
> 'scope.class.inc'
> <?php
> class CScope {
>
> public $vars = 'class scope\n';
>
> function cinclude($filename) {
> include('vars.php');
> echo "In class $vars\n";
> }
> }
> ?>
>
> 'vars.php'
> <?php
> //global $vars;//if this line is uncommented then the desired result is
> achieved however, i don't want to change all the variables to global
> scope (this file is includeded in other files where global scoped
> variables is not desireable).
> $vars = 'vars.php scope\n';
> ?>
>
> 'scope.php'
> <?php
> include('scope.class.inc');
> $object = new CScope;
> $object->cinclude('vars.php');
> echo "In original $vars\n";//$vars is not defined***
> ?>
>
> Thanks,
> dK
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
>
> --
> Martin Scotta
replace all $var with $vars. The extract method proposed is the
opposite of what i'm looking to do. I want to bring the class's include
scope into the calling object's scope.