Advertisement
Guest User

Developers Shame Day - Martin Kuckert

a guest
Nov 3rd, 2010
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.38 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Konvertiert ein Array in einen Integerwert.
  4.  * Dazu werden alle Elemente des Arrays in einen Integerwert konvertiert und
  5.  * aufeinanderaddiert.
  6.  */
  7. function array2int( $arr ) {
  8.     $integer = 0;
  9.     for( $i=0, $max=count( $arr ); $i<$max; $i++ ) {
  10.         $cur = $arr[$i];
  11.         $type = gettype( $cur );
  12.         switch( $type ) {
  13.             case 'integer':
  14.                 break;
  15.             case 'double':
  16.                 $cur = intval( $cur );
  17.                 break;
  18.             case 'string':
  19.                 $cur = str2int( $cur );
  20.                 break;
  21.             case 'array':
  22.                 $cur = array2int( $cur );
  23.                 break;
  24.             case 'object':
  25.                 $cur = object2int( $cur );
  26.                 break;
  27.             default:
  28.                 $cur = intval( $cur );
  29.                 break;
  30.         }
  31.         $integer += $cur;
  32.     }
  33.     return( $integer );
  34. }
  35.  
  36. /**
  37.  * Konvertiert einen String in einen Integerwert.
  38.  * Dazu werden die ASCII-Codes aller einzelnen Zeichen aufeinanderaddiert.
  39.  */
  40. function str2int( $str ) {
  41.     $integer = 0;
  42.     for( $i=0, $max=strlen( $str ); $i<$max; $i++ ) {
  43.         $integer += ord( $str{$i} );
  44.     }
  45.     return( abs( $integer ) );
  46. }
  47.  
  48. /**
  49.  * Konvertiert ein Object in einen Integerwert.
  50.  * Dazu werden die öffentlichen Methoden mithilfe der Funktion array2int in einen
  51.  * Integerwert gewandelt und zusätzlich der Name der Klasse (nur Kleinbuchstaben) mit der Funktion str2int
  52.  * aufaddiert.
  53.  */
  54. function object2int( $obj ) {
  55.     return( array2int( get_object_vars( $obj ) ) + str2int( strtolower( get_class( $obj ) ) ) );
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement