Re: Avoid object twice
| From: | Thijs Lensselink | Date: | Tue, 03 Jun 2008 11:05:02 +0000 |
| Subject: | Re: Avoid object twice | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-274954@lists.php.net to get a copy of this message | ||
Quoting Yui Hiroaki <hiroakiyui@gmail.com>:
Please look at my.php my.php load $obj=new My("Hello"); $obj->buff(); so, if a.php load, it absolutely got "hello" in load b.php Regards, Yui 2008/6/3 Thijs Lensselink <dev@lenss.nl>:I don't think i understand you fully. Or you're trying to make it to complicated. You have a class in "My.php" : Class My{Quoting Yui Hiroaki <hiroakiyui@gmail.com>:I don't see how it's possible for you to get "Hello" after "Good", when the file that cause's "Hello" is required to do "Good" /James On Mon, Jun 2, 2008 at 2:00 PM, Yui Hiroaki <hiroakiyui@gmail.com> wrote:Thank you for a good suggest! Somehow, I have to execute my.php also. This program have to run. 1)My.php 2)b.php My.php show "Hello" -> it is OK, b.php shows "Hello" "Good" it is NOT good. I need to get only "Good" Please give me a suggestion. Regards, Yui 2008/6/3 James Dempster <letssurf@gmail.com>:I suggest you don't put code other than class structures in class files.. Also don't execute My.php just execute b.php which though __autoload includes My.php. -----------------b.php---------------- <?php function __autoload($class_name) { include_once $class_name . '.php'; } $obj=new My("Hello"); $obj->buff(); $objref=new My("Good"); $objref->buff(); ----------------------------------- ----------My.php-------------- <?php Class My{private $word; function __construct($getword){ $this->word=$getword; } public function buff(){ echo $this->word."<br />"; }} /James Dempster On Tue, Jun 3, 2008 at 9:17 AM, Yui Hiroaki <hiroakiyui@gmail.com> wrote:HI! I had mistake in code in php. When I excute My.php, it say "Hello" When I excute b.php, it say Hello Good I would like to execute b.php and show only "Good" If you know it ,please teach me! Here is code below; -----------------b.php---------------- <?php function __autoload($class_name) { include_once $class_name . '.php'; } $objref=new My("Good"); $objref->buff(); ?> ----------------------------------- ----------My.php-------------- <?php $obj=new My("Hello"); $obj->buff(); Class My{private $word; function __construct($getword){ $this->word=$getword; } public function buff(){ echo $this->word."<br />"; }} ?> -------------------------------------- Regards, Yui 2008/6/3 James Dempster <letssurf@gmail.com>:Please take a look at code. --------a.php-------- $obj=new my("Hello"); $obj->buff(); Class my{ private $word; function __construct($getword){$this->word=$getword;} public function buff(){echo $this->word."<br />";} -------------------------------------- -----b.php----------------------- function __autoload($class_name) { include_once $class_name . '.php'; } $objref=new my("Good"); $objref->buff(); -------------------------------------------- I get an Echo; Good Hello Hello I do not need to get Hello twice. When I b.php , $obj=new my("Hello") is loaded. Do you have any adia to avoid load $obj in a.php twice? Regards, Yui -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.phpIf you only want to see "Good" Then don't run it twice. Take James's suggestion and try it again: -----------------b.php---------------- <?php function __autoload($class_name) { include_once $class_name . '.php'; } $objref=new My("Good"); $objref->buff(); ----------------------------------- ----------My.php-------------- <?php Class My{-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.phpprivate $word; function __construct($getword){ $this->word=$getword; } public function buff(){ echo $this->word."<br />"; }}
private $word;
function __construct($getword){
$this->word=$getword;
}
public function buff(){
echo $this->word."<br />";
}
}
And a script that creates an instance of My "b.php" :
function __autoload($class_name) {
include_once $class_name . '.php';
}
$obj=new My("Hello");
$obj->buff();
$objref=new My("Good");
$objref->buff();
The output will be "Hello<br/>Good<br/>". because you call it two times. So if you only want to see "Good". Then you change "b.php" to look like this:
function __autoload($class_name) {
include_once $class_name . '.php';
}
$objref=new My("Good");
$objref->buff();