The Little Guy Posted June 3, 2011 Share Posted June 3, 2011 In javascript, you can pass an object to a function/method like this: something.myFunc({ value1: 'value1', value2: 'value2', func: function(){ // Do some stuff } }); Is there anyway to do this in php? Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/ Share on other sites More sharing options...
KevinM1 Posted June 3, 2011 Share Posted June 3, 2011 As far as I know, you can't create an anonymous object in an inline manner like that in PHP. Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/#findComment-1224838 Share on other sites More sharing options...
gizmola Posted June 3, 2011 Share Posted June 3, 2011 Well PHP and javascript are very different languages in terms of oop. You can however do this, which is similar: myclass::myfunc(new someclass('value1', 'value2')); Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/#findComment-1224842 Share on other sites More sharing options...
The Little Guy Posted June 3, 2011 Author Share Posted June 3, 2011 Well PHP and javascript are very different languages in terms of oop. You can however do this, which is similar: myclass::myfunc(new someclass('value1', 'value2')); That doesn't work, You will get an error: Fatal error: Class 'someclass' not found another question: What is that type of JavaScript class called? There is a name for it, but I can not remember, and I can't find it on Google. Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/#findComment-1224847 Share on other sites More sharing options...
gizmola Posted June 3, 2011 Share Posted June 3, 2011 [quote author=The Little Guy link=topic=335040.msg1578221#msg1578221 date=1307131720] That doesn't work, You will get an error: Fatal error: Class 'someclass' not found It does work, within the confines of what php requires. The class has to be defined. class someclass { public function __construct($val1, $val2) { } } class myclass { public static function myfunc($obj) { echo get_class($obj) . "\n"; } } myclass::myfunc(new someclass('value1', 'value2')); another question: What is that type of JavaScript class called? There is a name for it, but I can not remember, and I can't find it on Google. It's called an object literal. Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/#findComment-1224869 Share on other sites More sharing options...
The Little Guy Posted June 3, 2011 Author Share Posted June 3, 2011 I can do this in php 5.3+ <?php class test1{ public function func1($obj){ $func = $obj->func; return $func(); } } $test = new test1(); $obj = (object)true; $obj->func = function(){ return 'hello'; }; echo $test->func1($obj); ?> Quote Link to comment https://forums.phpfreaks.com/topic/238341-object-as-parameter/#findComment-1224878 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.