php实现的console::log改进版

  1 <?php
  2 class console
  3 {
  4     public static function log()
  5     {
  6         self::scriptHead();
  7         $vars = '';
  8         $args = func_get_args();
  9         for($i=0,$len=count($args); $i<$len$i++){
 10             echo "var v".$i ." = ". self::format($args[$i]).";";
 11             $vars .= 'v'.$i.',';
 12         }
 13         $vars = rtrim($vars,',');
 14         echo "console.log(".$vars.");";
 15         self::scriptFoot();
 16     }
 17 
 18     private static function format($var)
 19     {
 20         $tmp = json_encode($var);
 21         return 'eval("(" +\'' .$tmp. '\'+ ")");';
 22 
 23     }
 24 
 25     private static function scriptHead()
 26     {
 27         echo '<script language="javascript">';
 28     }
 29 
 30     private static function scriptFoot()
 31     {
 32         echo '</script>';
 33     }
 34 }
 35 
 36 
 37 //变量
 38 $i = 'I am a string';
 39 
 40 console::log('string:',$i);
 41 
 42 //数组
 43 $arr = array(1,2,3,4,5);
 44 
 45 console::log('simple array:',$arr);
 46 
 47 //对象
 48 $obj1 = array(
 49     key1 => 'value1',
 50     key2 => 'value2',
 51     key3 => 'value3'
 52 );
 53 $obj2 = array(
 54     key1 => 'value1',
 55     key2 => 'value2',
 56     key3 => 'value3'
 57 );
 58 $obj3 = array(
 59     key1 => 'value1',
 60     key2 => 'value2',
 61     key3 => 'value3'
 62 );
 63 
 64 
 65 console::log('array',$obj1);
 66 
 67 
 68 //对象数组
 69 $objArr1 = array($obj1,$obj2,$obj3);
 70 $objArr2 = array(
 71     array($obj1),
 72     array($obj2),
 73     array($obj3)
 74 );
 75 
 76 //
 77 console::log('object',$objArr1,$objArr2);
 78 
 79 
 80 
 81 ?>
 82 
 83 <script language="javascript">
 84 
 85 //变量
 86 var i = 'I am a string';
 87 console.log('变量:',i);
 88 
 89 //数组
 90 var arr = [1,2,3,4,5];
 91 console.log('数组:',arr);
 92 
 93 //对象
 94 var obj1 = {
 95     key1 : 'value1',
 96     key2 : 'value2',
 97     key3 : 'value3'
 98 };
 99 var obj2 = {
100     key1 : 'value1',
101     key2 : 'value2',
102     key3 : 'value3'
103 };
104 var obj3 = {
105     key1 : 'value1',
106     key2 : 'value2',
107     key3 : 'value3'
108 };
109 
110 console.log('对象:',obj1);
111 //对象数组
112 var objArr1 = [obj1,obj2,obj3];
113 var objArr2 = [[obj1],[obj2],[obj3]];
114 
115 console.log('对象数组1:',objArr1);
116 console.log('对象数组1:',objArr2);
117 
118 </script>

 

posted @ 2010-09-30 15:02  wingle  阅读(508)  评论(0编辑  收藏  举报