pedrobcabral Posted September 22, 2006 Share Posted September 22, 2006 [code]<?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();[/code]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. Quote Link to comment https://forums.phpfreaks.com/topic/21654-oop-question/ Share on other sites More sharing options...
.josh Posted September 22, 2006 Share Posted September 22, 2006 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:[code]<?phpclass 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();?>[/code] Quote Link to comment https://forums.phpfreaks.com/topic/21654-oop-question/#findComment-96658 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.