note 102378 added to language.oop5.typehinting

From: Date: Fri, 11 Feb 2011 02:48:22 +0000
Subject: note 102378 added to language.oop5.typehinting
Groups: php.notes 
Request: Send a blank email to php-notes+get-176881@lists.php.net to get a copy of this message
I agree to gdecad about using object/wrapper is faster than using the is_* functions. But I think we must also consider the fact that when we pass an argument to a function, most likely we will use it's value. So I've done a little test to see which approach is faster. Primitive Approach: <?php function testPrimitive($str) { if ( is_string($str) ) $x = $str . ' world'; // using the argument's value else trigger_error('Argument passed must be of type string.'); } ?> Wrapper Approach: <?php function testWrapper(StringWrapper $str) { $x = $str->getValue() . ' world'; // using the argument's value } ?> Test: 10,000 iterations Results: primitive average: 0.026113033294678 wrapper average: 0.063039064407349 primitive is faster than wrapper approach by 41.42357368431% Using the is_* function is faster than using wrapper class, given the fact that we just not want to check the type of the argument, but we also want to use the value of the argument. ---- Server IP: 69.147.83.197 Probable Submitter: 112.202.163.142 ---- Manual Page -- http://www.php.net/manual/en/language.oop5.typehinting.php Edit -- https://master.php.net/note/edit/102378 Del: integrated -- https://master.php.net/note/delete/102378/integrated Del: useless -- https://master.php.net/note/delete/102378/useless Del: bad code -- https://master.php.net/note/delete/102378/bad+code Del: spam -- https://master.php.net/note/delete/102378/spam Del: non-english -- https://master.php.net/note/delete/102378/non-english Del: in docs -- https://master.php.net/note/delete/102378/in+docs Del: other reasons-- https://master.php.net/note/delete/102378 Reject -- https://master.php.net/note/reject/102378 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#176881) next »