svivian Posted February 15, 2009 Share Posted February 15, 2009 I have a function that takes an object as a parameter. In the function I'm doing things like $obj->var - but of course this throws an error if the parameter doesn't exist. I know I can use is_object to check if the parameter is an object, but that doesn't guarantee that the variables I'm looking for exist. So how would I check the type of an object? Quote Link to comment Share on other sites More sharing options...
.josh Posted February 15, 2009 Share Posted February 15, 2009 maybe I'm not understanding, but shouldn't you be able to just use isset? Quote Link to comment Share on other sites More sharing options...
genericnumber1 Posted February 15, 2009 Share Posted February 15, 2009 You can just use type hinting... <?php class Test { public function testFunction(Test $var) { // Will cause an error if $var is not of type Test $var->go(); // Don't worry that $var doesn't have go(), we now know it's of type Test } public function go() { echo 'gone!'; } } $test = new Test(); $test2 = new Test(); $test->testFunction($test2); Edit: Also look at is_a, get_class, and is_subclass_of if you don't want to use type hinting. Quote Link to comment Share on other sites More sharing options...
Mark Baker Posted February 15, 2009 Share Posted February 15, 2009 if ((is_object($dateValue)) && ($dateValue instanceof 'DateTime')) Quote Link to comment Share on other sites More sharing options...
svivian Posted February 15, 2009 Author Share Posted February 15, 2009 if ((is_object($dateValue)) && ($dateValue instanceof 'DateTime')) Yes, this is exactly what I was looking for, thanks! Don't know how I missed it in the PHP docs... Quote Link to comment 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.