Re: Avoid object twice

From: Date: Wed, 04 Jun 2008 12:30:15 +0000
Subject: Re: Avoid object twice
References: 1 2 3 4 5 6 7 8 9 10 11  Groups: php.general 
Request: Send a blank email to php-general+get-274990@lists.php.net to get a copy of this message
Quoting Yui Hiroaki <hiroakiyui@gmail.com>:
Thank you for your advice me! -------------My.php------- <?php Class My{
       private $word;
       function __construct($getword){
            $this->word=$getword;
       }
       public function buff(){
            mail("aaa@example.com","test","test");
       }
} ?> ---------------------------------- --------------b.php------------ <?php function __autoload($class_name) { include_once $class_name . '.php'; } $objref=new My("Good"); $objref->buff(); ?> -------------------------------- --------------c.php---------- <?php function __autoload($class_name) { include_once $class_name . '.php'; } $obj=new My("Hello"); $obj->buff(); ------------------------------ That is what I want to try. When c.php run, Mail() function run // < it is OK When b.php run, it also run Mail() fuction. // it is NOT OK I would like to run Mail() function one time only from c.php. However I also get prameter which declare "Good" in b.php Now when c.php and b.php run, the program send twice email. That is not good!! I would like to run c.php and b.php, then the program, which is Mail() function, get one email and get "Good" from b.php Regards, Yui
You could add a parameter to the buff() method. Class My{
        private $word;
        function __construct($getword){
             $this->word=$getword;
        }
        public function buff($sendMail = false){
             if ($sendMail) {
                 mail("aaa@example.com","test","test");
             }
        }
} When executing b.php pass true too the buff() method to send an email. --------------b.php------------ <?php function __autoload($class_name) { include_once $class_name . '.php'; } $objref=new My("Good"); $objref->buff(true); ?> -------------------------------- When executing c.php don't pass a parameter to the buff() method. So it defaults to false. And will not send an email. --------------c.php---------- <?php function __autoload($class_name) { include_once $class_name . '.php'; } $obj=new My("Hello"); $obj->buff(); ------------------------------

« previous php.general (#274990) next »