ScrollMaster Posted May 15, 2006 Share Posted May 15, 2006 help for I am a exterme php newb and I need some freaky php freak to come and pwn me with the anwser to my problem.Here is my code:[code] <?php#================================================================ class FlyBehaviour { public function Fly() { print "<p>"."Duck is Flying!, Almost!"."</p>"."\n"; } }#================================================================ class QuackBehaviour { public function Quack() { print "<p>"."Duck is Quacking!, Almost!"."</p>"."\n"; } }#================================================================ class Duck { # Variables ------------------------------------------------ public $fly; public $quack; # Functions ------------------------------------------------ public function __construct() { print "<p>"."Created a Duck!"."</p>"."\n"; } public function performFly() { $fly->Fly(); } public function performQuack() { $quack->Quack(); } }#================================================================ $duck = new Duck(); $duck->performFly(); $duck->performQuack();?>[/code]Output:Created a Duck!Fatal error: Call to a member function Fly() on a non-object in E:\Program\www\localhost\simUduck\index.php on line 33and Above is my error...What have I done wrong? What rule have I missed? What Syntax have I wrong?Please Help! Link to comment https://forums.phpfreaks.com/topic/9735-fatal-error-call-to-a-member-function/ Share on other sites More sharing options...
ryanlwh Posted May 15, 2006 Share Posted May 15, 2006 in the class Duck, you have to make $fly an instance of FlyBehavior before it knows how to use Fly().[code]public function __construct() { $this->fly = new FlyBehavior; print "<p>"."Created a Duck!"."</p>"."\n"; }[/code]Also, I believe you have to change $fly->Fly() with $this->fly->Fly(). Link to comment https://forums.phpfreaks.com/topic/9735-fatal-error-call-to-a-member-function/#findComment-36079 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.