1--TEST--
2Test exif_tagname() function : usage variations  - different types for index argument
3--SKIPIF--
4<?php if (!extension_loaded('exif')) print 'skip exif extension not available';
5if (PHP_INT_SIZE != 8) die('skip 64-bit only');
6?>
7--FILE--
8<?php
9
10/* Prototype  : string exif_tagname ( string $index  )
11 * Description: Get the header name for an index
12 * Source code: ext/exif/exif.c
13*/
14
15echo "*** Testing exif_tagname() : different types for index argument ***\n";
16// initialize all required variables
17
18// get an unset variable
19$unset_var = 'string_val';
20unset($unset_var);
21
22// declaring a class
23class sample  {
24  public function __toString() {
25  return "obj'ct";
26  }
27}
28
29// Defining resource
30$file_handle = fopen(__FILE__, 'r');
31
32// array with different values
33$values =  array (
34
35  // integer values
36  0,
37  1,
38  12345,
39  -2345,
40
41  // float values
42  10.5,
43  -10.5,
44  10.1234567e10,
45  10.7654321E-10,
46  .5,
47
48  // array values
49  array(),
50  array(0),
51  array(1),
52  array(1, 2),
53  array('color' => 'red', 'item' => 'pen'),
54
55  // boolean values
56  true,
57  false,
58  TRUE,
59  FALSE,
60
61  // empty string
62  "",
63  '',
64
65  // undefined variable
66  $undefined_var,
67
68  // unset variable
69  $unset_var,
70
71  // objects
72  new sample(),
73
74  // resource
75  $file_handle,
76
77  NULL,
78  null
79);
80
81
82// loop through each element of the array and check the working of exif_tagname()
83// when $index argument is supplied with different values
84
85echo "\n--- Testing exif_tagname() by supplying different values for 'index' argument ---\n";
86$counter = 1;
87foreach($values as $index) {
88  echo "-- Iteration $counter --\n";
89  var_dump( exif_tagname($index) );
90  $counter ++;
91}
92
93// closing the file
94fclose($file_handle);
95
96echo "Done\n";
97?>
98
99?>
100===Done===
101--EXPECTF--
102*** Testing exif_tagname() : different types for index argument ***
103
104Notice: Undefined variable: undefined_var in %s on line %d
105
106Notice: Undefined variable: unset_var in %s on line %d
107
108--- Testing exif_tagname() by supplying different values for 'index' argument ---
109-- Iteration 1 --
110bool(false)
111-- Iteration 2 --
112bool(false)
113-- Iteration 3 --
114bool(false)
115-- Iteration 4 --
116bool(false)
117-- Iteration 5 --
118bool(false)
119-- Iteration 6 --
120bool(false)
121-- Iteration 7 --
122bool(false)
123-- Iteration 8 --
124bool(false)
125-- Iteration 9 --
126bool(false)
127-- Iteration 10 --
128
129Warning: exif_tagname() expects parameter 1 to be integer, array given in %s on line %d
130NULL
131-- Iteration 11 --
132
133Warning: exif_tagname() expects parameter 1 to be integer, array given in %s on line %d
134NULL
135-- Iteration 12 --
136
137Warning: exif_tagname() expects parameter 1 to be integer, array given in %s on line %d
138NULL
139-- Iteration 13 --
140
141Warning: exif_tagname() expects parameter 1 to be integer, array given in %s on line %d
142NULL
143-- Iteration 14 --
144
145Warning: exif_tagname() expects parameter 1 to be integer, array given in %s on line %d
146NULL
147-- Iteration 15 --
148bool(false)
149-- Iteration 16 --
150bool(false)
151-- Iteration 17 --
152bool(false)
153-- Iteration 18 --
154bool(false)
155-- Iteration 19 --
156
157Warning: exif_tagname() expects parameter 1 to be integer, string given in %s on line %d
158NULL
159-- Iteration 20 --
160
161Warning: exif_tagname() expects parameter 1 to be integer, string given in %s on line %d
162NULL
163-- Iteration 21 --
164bool(false)
165-- Iteration 22 --
166bool(false)
167-- Iteration 23 --
168
169Warning: exif_tagname() expects parameter 1 to be integer, object given in %s on line %d
170NULL
171-- Iteration 24 --
172
173Warning: exif_tagname() expects parameter 1 to be integer, resource given in %s on line %d
174NULL
175-- Iteration 25 --
176bool(false)
177-- Iteration 26 --
178bool(false)
179Done
180
181?>
182===Done===
183