Re: [PHP] include file in a class with global/parent scope?

2009-06-16 Thread Daniel Kolbo
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 kolb0...@umn.edu
 mailto:kolb0...@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.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] include file in a class with global/parent scope?

2009-06-16 Thread Daniel Kolbo
Hello,

I've cleaned up my question a bit.

I want the included file which is called within a method of a class to
have the same scope as the instantiation of the class's object.  That
is, i want a class to include a file in the calling object's scope.  How
would one do this?

'test.php'
?php
class CSomeClass {
 public function cinclude() {
   include('vars.php');
 }
}

$object = new CSomeClass;
$object-cinclude();
echo $vars;//i want this to print 'hi'
include('vars.php');
echo obvious $vars;
?

'vars.php'
?php
$vars = hi;
?

OUTPUT:
Notice: Undefined variable: vars in ...\test.php on line 10
obvious hi

DESIRED OUTPUT:
hi
obvious hi

Thanks,
dK

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] include file in a class with global/parent scope?

2009-06-16 Thread Shawn McKenzie
Daniel Kolbo wrote:
 Hello,
 
 I've cleaned up my question a bit.
 
 I want the included file which is called within a method of a class to
 have the same scope as the instantiation of the class's object.  That
 is, i want a class to include a file in the calling object's scope.  How
 would one do this?
 
 'test.php'
 ?php
 class CSomeClass {
  public function cinclude() {
include('vars.php');
  }
 }
 
 $object = new CSomeClass;
 $object-cinclude();
 echo $vars;//i want this to print 'hi'
 include('vars.php');
 echo obvious $vars;
 ?
 
 'vars.php'
 ?php
 $vars = hi;
 ?
 
 OUTPUT:
 Notice: Undefined variable: vars in ...\test.php on line 10
 obvious hi
 
 DESIRED OUTPUT:
 hi
 obvious hi
 
 Thanks,
 dK

Should get you started:

//one way
?php
class CSomeClass {
 public function cinclude() {
   include('vars.php');
   return get_defined_vars();
 }
}

$object = new CSomeClass;
$inc_vars = $object-cinclude();
echo $inc_vars['vars'];//i want this to print 'hi'

---or---

//another way
?php
class CSomeClass {
 var $inc_vars;
 public function cinclude() {
   include('vars.php');
   $this-inc_vars = get_defined_vars();
 }
}

$object = new CSomeClass;
$object-cinclude();
echo $object-inc_vars['vars'];//i want this to print 'hi'


-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] include file in a class with global/parent scope?

2009-06-16 Thread Shawn McKenzie
Shawn McKenzie wrote:
 Daniel Kolbo wrote:
 Hello,

 I've cleaned up my question a bit.

 I want the included file which is called within a method of a class to
 have the same scope as the instantiation of the class's object.  That
 is, i want a class to include a file in the calling object's scope.  How
 would one do this?

 'test.php'
 ?php
 class CSomeClass {
  public function cinclude() {
include('vars.php');
  }
 }

 $object = new CSomeClass;
 $object-cinclude();
 echo $vars;//i want this to print 'hi'
 include('vars.php');
 echo obvious $vars;
 ?

 'vars.php'
 ?php
 $vars = hi;
 ?

 OUTPUT:
 Notice: Undefined variable: vars in ...\test.php on line 10
 obvious hi

 DESIRED OUTPUT:
 hi
 obvious hi

 Thanks,
 dK
 
 Should get you started:
 
 //one way
 ?php
 class CSomeClass {
  public function cinclude() {
include('vars.php');
return get_defined_vars();
  }
 }
 
 $object = new CSomeClass;
 $inc_vars = $object-cinclude();
 echo $inc_vars['vars'];//i want this to print 'hi'
 
 ---or---
 
 //another way
 ?php
 class CSomeClass {
  var $inc_vars;
  public function cinclude() {
include('vars.php');
$this-inc_vars = get_defined_vars();
  }
 }
 
 $object = new CSomeClass;
 $object-cinclude();
 echo $object-inc_vars['vars'];//i want this to print 'hi'
 
 

Another way off the top of my head:

//vars.php
$vars['something'] = 'hi';
$vars['whatever'] = 'bye';

//test.php
class CSomeClass {
 var $vars;
 public function cinclude() {
   include('vars.php');
   $this-vars = $vars;
 }
}

$object = new CSomeClass;
$object-cinclude();
echo $object-vars['something'];//i want this to print 'hi'

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] include file in a class with global/parent scope?

2009-06-14 Thread Daniel Kolbo
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 $var = '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