Jump to content


Photo

OOP question


  • Please log in to reply
1 reply to this topic

#1 pedrobcabral

pedrobcabral
  • Members
  • PipPipPip
  • Advanced Member
  • 108 posts

Posted 22 September 2006 - 12:18 PM

<?php

$error = new error;
$somefeature = new somefeature;

class error {
var $message;
function display() {
echo $this->message;
}
}

class somefeature {
var $something;
function something($error) {
$error->message = $error;
}
}

$somefeature->something(errortest);
$error->display();

This does not work, how can I have this kind of interaction between classes without having to destroy one of them, and avoiding "class a extends b" ?
(Becous in this case all the classes whould be extending the error one. Would be a waste.)
Thanks very much.

#2 .josh

.josh
  • Staff Alumni
  • .josh
  • 14,871 posts

Posted 22 September 2006 - 12:31 PM

you need to use a different argument variable in your something() function. passing the data with the same name as your object will overwrite your object. or the object will overwrite the argument when you declare it, actually.  also, you need to declare your $error object as a global variable to be used within the scope of your something() function.

working code:
<?php
class error {
   var $message;
   function display() {
      echo $this->message;
   }
}

class somefeature {
   var $something;
   function something($errormsg) {
      global $error;
			$error->message = $errormsg;
   }
}

$error = new error;
$somefeature = new somefeature;


$somefeature->something(errortest);
$error->display();

?>

Did I help you? Feeling generous? Buy me lunch! 
Please, take the time and do some research and find out how much it would have cost you to get your help from a decent paid-for source. A "roll-of-the-dice" freelancer will charge you $5-$15/hr. A decent entry level freelancer will charge you around $15-30/hr. A professional will charge you anywhere from $50-$100/hr. An agency will charge anywhere from $100-$250/hr. Think about all this when soliciting for help here. Think about how much money you are making from the work you are asking for help on. No, we do not expect you to pay for the help given here, but donating a few bucks is a fraction of the cost of what you would have paid, shows your appreciation, helps motivate people to keep offering help without the pricetag, and helps make this a higher quality free-help community :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users