Grapes are yummy! Don't you like grapes?



  • So, I was digging through our code trying to make a simple change to this God forsaken website when I stumbled upon this beauty. It was under another gem, a custom implementation of strrpos.

    function strrpos_rev2($text, $search, $offset = 500)
    // =============================================================================
    {
    	$search = "grapes";
    	$text = "grapes grapes. Grapes are yummy! Don't you like grapes?";
    
    	$text_rev = strrev($substr);
    	$search_rev = strrev($search);
    
    	$search_length = strlen($search);
    	$text_length = strlen($text);
    	d("text_length: " . $text_length);
    	d("offset: " . $offset);
    
    	$out = "";
    	$out .= $text . "";
    	$out .= "0123456789012345678901234567890123456789012345678901234" . "";
    	$out .= "0         1         2         3         4         5    " . "<font face="courier">";
    	$out .= "</font>";
    
    	if ($offset) // only use part of the string
    		$text = substr($text, 0, $offset);
    	d($text);
    
    	$search_start = strripos($text, $search);
    	d("search_start: " . $search_start);
    
    	$search_length = strlen($search);
    	d("search_length: " . $search_length);
    
    	$search_stop = $search_start + $search_length;
    	d("search_stop: " . $search_stop);
    	
    	$temp = strripos($text_rev, $search_rev);
    	d("temp: " . $temp);
    	
    	$temp2 = $temp + $search_length;
    	d("temp2: " . $temp2);
    
    	$pos = $text_length - $temp2;
    	d("pos: " . $text_length);
    
    	print $out;
    }
    


  • I like consistency in my function results.  If the programmer overwrote the contents of the $offset argument as well, this would be perfect!

    Or is this in some sick, twisted language which will optionally skip assignments at the start of a function (before any non-assignment lines) if they're the first assignment to one of the function parameters, and that function has a value?  I wouldn't *think* this would be from such a convoluted language, as it obviously handles default values through the prototype specification.  However, I have seen that feature in a language (I forget which one) that didn't have prototypes, and I have seen a number of languages which included redundant features from other languages, to provide comfort for people used to those specific programming languages.



  •  Sorry, you're out of luck. It's PHP my friend.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.