Beispiel #1
0
 /**
  * Returns a variable in a fashion that is directly usable by PHP.
  * 
  * @param mixed $o The item to be.
  * @param bool $remove_empty Default: "false".
  * @param int $lev Default: "1".
  * 
  * @return mixed
  */
 public static function export($o, $remove_empty = false, $lev = 1)
 {
     $st = '';
     if (is_object($o) && ($cls = get_class($o)) && $cls !== 'stdClass') {
         $st .= "Object " . get_class($o) . PHP_EOL;
     }
     if (is_object($o) || is_array($o)) {
         $is_assoc = is_object($o) || \bbn\tools::is_assoc($o);
         $st .= $is_assoc ? '{' : '[';
         $st .= PHP_EOL;
         foreach ($o as $k => $v) {
             if ($remove_empty && (is_string($v) && empty($v) || is_array($v) && count($v) === 0)) {
                 continue;
             }
             $st .= str_repeat('    ', $lev);
             if ($is_assoc) {
                 $st .= (is_string($k) ? "'" . \bbn\str\text::escape_squote($k) . "'" : $k) . ": ";
             }
             if (is_array($v)) {
                 $st .= self::export($v, $remove_empty, $lev + 1);
             } else {
                 if (is_object($v)) {
                     $cls = get_class($v);
                     if ($cls === 'stdClass') {
                         $st .= self::export($v, $remove_empty, $lev + 1);
                     } else {
                         $st .= "Object {$cls}";
                     }
                 } else {
                     if ($v === 0) {
                         $st .= '0';
                     } else {
                         if (is_null($v)) {
                             $st .= 'null';
                         } else {
                             if (is_bool($v)) {
                                 $st .= $v === false ? 'false' : 'true';
                             } else {
                                 if (is_int($v) || is_float($v)) {
                                     $st .= $v;
                                 } else {
                                     if (!$remove_empty || !empty($v)) {
                                         $st .= "'" . \bbn\str\text::escape_squote($v) . "'";
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             $st .= ',' . PHP_EOL;
         }
         $st .= str_repeat('    ', $lev - 1);
         $st .= $is_assoc ? '}' : ']';
         return $st;
     }
     return $o;
 }