Yui Hiroaki wrote:
The code is blelow;
-----------------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 />";
}
}
?>
--------------------------------------
on website, first it execute My.php , then execute b.php
So it will show blelow;
Hello(when excute My.php)
Hello(when excute from b.php)
Good(when excute from b.php)
I do not need "Hello" twice
I would get
Hello(when excute My.php)
Good(when excute from b.php)
Please do help me!
Regards,
Yui
2008/6/3 Thijs Lensselink <dev@xxxxxxxx>:
Quoting Yui Hiroaki <hiroakiyui@xxxxxxxxx>:
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@xxxxxxxx>:
Quoting Yui Hiroaki <hiroakiyui@xxxxxxxxx>:
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@xxxxxxxxx>:
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@xxxxxxxxx>
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@xxxxxxxxx>:
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@xxxxxxxxx>
wrote:
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.php
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
If 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{
private $word;
function __construct($getword){
$this->word=$getword;
}
public function buff(){
echo $this->word."<br />";
}
}
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{
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();
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
You are confusing the terms execute, with include.
If you are including a script/file and you only want it included once, then you
need to use the *_once constructs. I don't call them functions because they are
not functions.
include 'filename';
include_once 'filename';
require 'filename';
require_once 'filename';
if you use the *_once calls, your script will only ever be included one time.
If you mix them, then you will have problems.
your class scripts should be setup to where there is only one class per file and
that nothing is "executed" from that file. It should only be included. Then
the file(s) that include your class should do the work of initializing and using
the class.
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php