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>
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>