jsschmitt Posted October 7, 2011 Share Posted October 7, 2011 I'm trying to return to array of letters that bruteForce finally decides upon. However, I can't seem to pass the array to librarySolve. I'm feeling dumb, any help? function librarySolve($string){ $temp = $this->bruteForce($string, FALSE, 0); return $temp; } function bruteForce($string, $state, $trys){ $base = $string; $state = $state; $new_letters = array(); if($trys <= 6000){ $this->new_letters = $this->generateRandomCipher(); $string = preg_replace('/[^a-zA-Z0-9-\s]/', '', $string); for($a=0;$a<=strlen($string);$a++){ $letter = substr($string, $a, 1); $pattern = "/[A-Z]/"; if(preg_match($pattern, $letter)!=0){ $new_letter = $this->new_letters[$letter]; } else if(preg_match($pattern, $letter)==0) { $new_letter = $letter; } $decipher .= $new_letter; } $word_array = explode(" ", $decipher); $count = 0; for($a=0;$a<count($word_array);$a++){ $do = $this->checkWord($word_array[$a]); if(!empty($do)){ $count++; } } if($count>=2){ $state = TRUE; } else { $state = FALSE; } if($state==TRUE){ return $this->new_letters; } else { $trys++; $this->bruteForce($base, $state, $trys); } } } Link to comment https://forums.phpfreaks.com/topic/248653-recursive-function-return-array-not-working/ Share on other sites More sharing options...
requinix Posted October 7, 2011 Share Posted October 7, 2011 The recursive call needs a return too. Link to comment https://forums.phpfreaks.com/topic/248653-recursive-function-return-array-not-working/#findComment-1277049 Share on other sites More sharing options...
jsschmitt Posted October 7, 2011 Author Share Posted October 7, 2011 Quote The recursive call needs a return too. Is the last part of: if($state==TRUE){ return $this->new_letters; } else { $trys++; $this->bruteForce($base, $state, $trys); } Not enough? Link to comment https://forums.phpfreaks.com/topic/248653-recursive-function-return-array-not-working/#findComment-1277050 Share on other sites More sharing options...
jcbones Posted October 7, 2011 Share Posted October 7, 2011 Going out on a limb here. else { $trys++; $this->letters .= $this->bruteForce($base, $state, $trys); } Link to comment https://forums.phpfreaks.com/topic/248653-recursive-function-return-array-not-working/#findComment-1277051 Share on other sites More sharing options...
jsschmitt Posted October 7, 2011 Author Share Posted October 7, 2011 Quote Going out on a limb here. else { $trys++; $this->letters .= $this->bruteForce($base, $state, $trys); } My hero. Forgot about classes and global variables. Told you I was feeling stupid. Link to comment https://forums.phpfreaks.com/topic/248653-recursive-function-return-array-not-working/#findComment-1277062 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.