1--TEST--
2Test strip_tags() function : usage variations - unexpected values for 'str' argument
3--INI--
4set short_open_tag = on
5--FILE--
6<?php
7/* Prototype  : string strip_tags(string $str [, string $allowable_tags])
8 * Description: Strips HTML and PHP tags from a string
9 * Source code: ext/standard/string.c
10*/
11
12/*
13 * testing functionality of strip_tags() by giving unexpected input values for $str argument
14*/
15
16echo "*** Testing strip_tags() : usage variations ***\n";
17
18//get an unset variable
19$unset_var = 10;
20unset ($unset_var);
21
22//get a resource variable
23$fp = fopen(__FILE__, "r");
24
25//get a class
26class classA{
27  public function __toString(){
28    return "Class A object";
29  }
30}
31
32//array of values to iterate over
33$values = array(
34
35	      // int data
36/*1*/     0,
37	      1,
38	      12345,
39	      -2345,
40
41	      // float data
42/*5*/      10.5,
43	      -10.5,
44	      10.1234567e10,
45	      10.7654321E-10,
46	      .5,
47
48	      // array data
49/*10*/    array(),
50	      array(0),
51	      array(1),
52	      array(1, 2),
53	      array('color' => 'red', 'item' => 'pen'),
54
55	      // null data
56/*15*/    NULL,
57	      null,
58
59	      // boolean data
60/*17*/    true,
61	      false,
62	      TRUE,
63	      FALSE,
64
65	      // empty data
66/*21*/    "",
67	      '',
68
69	      // object data
70/*23*/    new classA(),
71
72	      // undefined data
73/*24*/    @$undefined_var,
74
75	      // unset data
76/*25*/    @$unset_var,
77
78	      // resource variable
79/*26*/    $fp
80
81);
82
83// loop through each element of the array for allowable_tags
84$iterator = 1;
85foreach($values as $value) {
86      echo "-- Iteration $iterator --\n";
87      var_dump( strip_tags($value) );
88      $iterator++;
89};
90
91?>
92===DONE===
93--EXPECTF--
94*** Testing strip_tags() : usage variations ***
95-- Iteration 1 --
96string(1) "0"
97-- Iteration 2 --
98string(1) "1"
99-- Iteration 3 --
100string(5) "12345"
101-- Iteration 4 --
102string(5) "-2345"
103-- Iteration 5 --
104string(4) "10.5"
105-- Iteration 6 --
106string(5) "-10.5"
107-- Iteration 7 --
108string(12) "101234567000"
109-- Iteration 8 --
110string(13) "1.07654321E-9"
111-- Iteration 9 --
112string(3) "0.5"
113-- Iteration 10 --
114
115Warning: strip_tags() expects parameter 1 to be string, array given in %s on line %d
116NULL
117-- Iteration 11 --
118
119Warning: strip_tags() expects parameter 1 to be string, array given in %s on line %d
120NULL
121-- Iteration 12 --
122
123Warning: strip_tags() expects parameter 1 to be string, array given in %s on line %d
124NULL
125-- Iteration 13 --
126
127Warning: strip_tags() expects parameter 1 to be string, array given in %s on line %d
128NULL
129-- Iteration 14 --
130
131Warning: strip_tags() expects parameter 1 to be string, array given in %s on line %d
132NULL
133-- Iteration 15 --
134string(0) ""
135-- Iteration 16 --
136string(0) ""
137-- Iteration 17 --
138string(1) "1"
139-- Iteration 18 --
140string(0) ""
141-- Iteration 19 --
142string(1) "1"
143-- Iteration 20 --
144string(0) ""
145-- Iteration 21 --
146string(0) ""
147-- Iteration 22 --
148string(0) ""
149-- Iteration 23 --
150string(14) "Class A object"
151-- Iteration 24 --
152string(0) ""
153-- Iteration 25 --
154string(0) ""
155-- Iteration 26 --
156
157Warning: strip_tags() expects parameter 1 to be string, resource given in %s on line %d
158NULL
159===DONE===