HosipLan

Untitled

Feb 21st, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.22 KB | None | 0 0
  1. # test
  2.  
  3.  
  4. <?php
  5.  
  6. require_once '/usr/include/php/nette/Nette/loader.php';
  7. Nette\Diagnostics\Debugger::enable(FALSE);
  8. Nette\Diagnostics\Debugger::$strictMode = TRUE;
  9.  
  10. function compareRequestArgs($new, $old)
  11. {
  12.     foreach ($new as $key => $val) {
  13.         if (is_scalar($val) && (string) $val !== (isset($old[$key]) ? (string) $old[$key] : '')) {
  14.             return FALSE;
  15.  
  16.         } elseif (is_array($val) && (!isset($old[$key]) || !compareRequestArgs($val, $old[$key]))) {
  17.             return FALSE;
  18.         }
  19.     }
  20.     return TRUE;
  21. }
  22.  
  23. $c = array();
  24. $c[] = compareRequestArgs(array('a' => TRUE), array('a' => TRUE));
  25. $c[] = !compareRequestArgs(array('a' => TRUE), array('a' => FALSE));
  26. $c[] = !compareRequestArgs(
  27.     array('a' => array('c' => array('d' => TRUE))),
  28.     array('a' => array('b' => array('d' => TRUE)))
  29. );
  30. $c[] = !compareRequestArgs(
  31.     array('a' => array('c' => array('d' => TRUE))),
  32.     array('a' => array('c' => TRUE))
  33. );
  34. $c[] = !compareRequestArgs(
  35.     array('a' => array('c' => TRUE)),
  36.     array('a' => array('c' => array('d' => TRUE)))
  37. );
  38.  
  39.  
  40. dump(count(array_filter($c)) === count($c) ? "OK" : "FAILED", $c);
  41.  
  42.  
  43. # output
  44.  
  45.  
  46. $ php ./Presenter.compareArgs.php
  47. "OK" (2)
  48.  
  49. array(5) [
  50.    0 => TRUE
  51.    1 => TRUE
  52.    2 => TRUE
  53.    3 => TRUE
  54.    4 => TRUE
  55. ]
Advertisement
Add Comment
Please, Sign In to add comment