1--TEST--
2Test chr() function : usage variations - test values for $ascii argument
3--FILE--
4<?php
5
6/* Prototype  : string chr  ( int $ascii  )
7 * Description: Return a specific character
8 * Source code: ext/standard/string.c
9*/
10
11echo "*** Testing chr() function: with unexpected inputs for 'ascii' argument ***\n";
12
13//get an unset variable
14$unset_var = 'string_val';
15unset($unset_var);
16
17//defining a class
18class sample  {
19  public function __toString() {
20    return "sample object";
21  }
22}
23
24//getting the resource
25$file_handle = fopen(__FILE__, "r");
26
27// array with different values for $input
28$inputs =  array (
29
30		  // integer values
31/*1*/	  0,
32		  1,
33		  255,
34		  256,
35
36		  // float values
37/*5*/	  10.5,
38		  -20.5,
39		  1.1234e6,
40
41		  // array values
42/*8*/	  array(),
43		  array(0),
44		  array(1, 2),
45
46		  // boolean values
47/*11*/	  true,
48		  false,
49		  TRUE,
50		  FALSE,
51
52		  // null values
53/*15*/	  NULL,
54		  null,
55
56		  // objects
57/*17*/	  new sample(),
58
59		  // resource
60/*18*/	  $file_handle,
61
62		  // undefined variable
63/*19*/	  @$undefined_var,
64
65		  // unset variable
66/*20*/	  @$unset_var
67);
68
69// loop through with each element of the $inputs array to test chr() function
70$count = 1;
71foreach($inputs as $input) {
72  echo "-- Iteration $count --\n";
73  var_dump( bin2hex(chr($input)) );
74  $count ++;
75}
76
77fclose($file_handle);  //closing the file handle
78
79?>
80===DONE===
81--EXPECTF--
82*** Testing chr() function: with unexpected inputs for 'ascii' argument ***
83-- Iteration 1 --
84string(2) "00"
85-- Iteration 2 --
86string(2) "01"
87-- Iteration 3 --
88string(2) "ff"
89-- Iteration 4 --
90string(2) "00"
91-- Iteration 5 --
92string(2) "0a"
93-- Iteration 6 --
94string(2) "ec"
95-- Iteration 7 --
96string(2) "48"
97-- Iteration 8 --
98string(2) "00"
99-- Iteration 9 --
100string(2) "00"
101-- Iteration 10 --
102string(2) "00"
103-- Iteration 11 --
104string(2) "01"
105-- Iteration 12 --
106string(2) "00"
107-- Iteration 13 --
108string(2) "01"
109-- Iteration 14 --
110string(2) "00"
111-- Iteration 15 --
112string(2) "00"
113-- Iteration 16 --
114string(2) "00"
115-- Iteration 17 --
116string(2) "00"
117-- Iteration 18 --
118string(2) "00"
119-- Iteration 19 --
120string(2) "00"
121-- Iteration 20 --
122string(2) "00"
123===DONE===
124