1--TEST--
2Test escapeshellarg() function : usage variations - different data types as $arg arg
3--SKIPIF--
4<?php
5if( substr(PHP_OS, 0, 3) != "WIN" )
6  die("skip.. only for Windows");
7?>
8--FILE--
9<?php
10
11echo "*** Testing escapeshellarg() : usage variations ***\n";
12
13//get an unset variable
14$unset_var = 10;
15unset ($unset_var);
16
17// heredoc string
18$heredoc = <<<EOT
19abc
20xyz
21EOT;
22
23
24// get a resource variable
25$fp = fopen(__FILE__, "r");
26
27$inputs = array(
28       // int data
29/*1*/  0,
30       1,
31       12,
32       -12,
33       2147483647,
34
35       // float data
36/*6*/  10.5,
37       -10.5,
38       1.234567e2,
39       1.234567E-2,
40       .5,
41
42       // null data
43/*11*/ NULL,
44       null,
45
46       // boolean data
47/*13*/ true,
48       false,
49       TRUE,
50       FALSE,
51
52       // empty data
53/*17*/ "",
54       '',
55
56       // undefined data
57/*19*/ @$undefined_var,
58
59       // unset data
60/*20*/ @$unset_var,
61
62);
63
64// loop through each element of $inputs to check the behaviour of escapeshellarg()
65$iterator = 1;
66foreach($inputs as $input) {
67    echo "\n-- Iteration $iterator --\n";
68    var_dump(escapeshellarg($input));
69    $iterator++;
70};
71?>
72--EXPECT--
73*** Testing escapeshellarg() : usage variations ***
74
75-- Iteration 1 --
76string(3) ""0""
77
78-- Iteration 2 --
79string(3) ""1""
80
81-- Iteration 3 --
82string(4) ""12""
83
84-- Iteration 4 --
85string(5) ""-12""
86
87-- Iteration 5 --
88string(12) ""2147483647""
89
90-- Iteration 6 --
91string(6) ""10.5""
92
93-- Iteration 7 --
94string(7) ""-10.5""
95
96-- Iteration 8 --
97string(10) ""123.4567""
98
99-- Iteration 9 --
100string(12) ""0.01234567""
101
102-- Iteration 10 --
103string(5) ""0.5""
104
105-- Iteration 11 --
106string(2) """"
107
108-- Iteration 12 --
109string(2) """"
110
111-- Iteration 13 --
112string(3) ""1""
113
114-- Iteration 14 --
115string(2) """"
116
117-- Iteration 15 --
118string(3) ""1""
119
120-- Iteration 16 --
121string(2) """"
122
123-- Iteration 17 --
124string(2) """"
125
126-- Iteration 18 --
127string(2) """"
128
129-- Iteration 19 --
130string(2) """"
131
132-- Iteration 20 --
133string(2) """"
134