Advertisement
Guest User

Untitled

a guest
Jun 21st, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.81 KB | None | 0 0
  1. <?php
  2.  
  3. function test_original($count, $propertyName) {
  4.     $time_start = microtime(true);
  5.     for ($a=0; $a < $count; $a++) {
  6.         $snakeCasedName = '';
  7.  
  8.          $len = strlen($propertyName);
  9.          for ($i = 0; $i < $len; ++$i) {
  10.              if (ctype_upper($propertyName[$i]) && $i !== 0) {
  11.                  $snakeCasedName .= '_'.strtolower($propertyName[$i]);
  12.              } else {
  13.                  $snakeCasedName .= strtolower($propertyName[$i]);
  14.              }
  15.         }
  16.     }
  17.     return number_format(microtime(true) - $time_start, 3);
  18. }
  19.  
  20.  
  21. function test_energetick($count, $propertyName) {
  22.     $time_start = microtime(true);
  23.     for ($a=0; $a < $count; $a++) {
  24.         $len = strlen($propertyName) - 1;
  25.         $lowerCasedName = strtolower($propertyName);
  26.  
  27.         // First character taken as is
  28.         $snakeCasedName = isset($lowerCasedName[0]) ? $lowerCasedName[0] : '';
  29.  
  30.         for ($i = 1; $i < $len; ++$i) {
  31.             // If uppercase
  32.             if ($lowerCasedName[0] !== $propertyName[$i]) {
  33.                $snakeCasedName .= '_';
  34.             }
  35.  
  36.             $snakeCasedName .= $lowerCasedName[$i];
  37.         }
  38.     }
  39.     return number_format(microtime(true) - $time_start, 3);
  40. }
  41.  
  42.  
  43. function test_dunglas($count, $propertyName) {
  44.     $time_start = microtime(true);
  45.     for ($a=0; $a < $count; $a++) {
  46.         $snakeCasedName = '';
  47.  
  48.         $len = strlen($propertyName);
  49.         for ($i = 0; $i < $len; ++$i) {
  50.             $lcPropertyName = strtolower($propertyName[$i]);
  51.             if (0 !== $i && $lcPropertyName !== $propertyName[$i]) {
  52.                 $snakeCasedName .= '_'.$lcPropertyName;
  53.             } else {
  54.                 $snakeCasedName .= $lcPropertyName;
  55.             }
  56.         }
  57.     }
  58.     return number_format(microtime(true) - $time_start, 3);
  59. }
  60.  
  61. foreach (['test_original', 'test_energetick', 'test_dunglas'] as $function) {
  62.     $result = $function(100000, 'aLongNameIsVeryLong');
  63.     echo $function." : ".$result." sec.\n";
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement