1--TEST--
2Test decbin() function : usage variations - different data types as $num arg
3--INI--
4precision=14
5--SKIPIF--
6<?php
7if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
8?>
9--FILE--
10<?php
11echo "*** Testing decbin() : usage variations ***\n";
12
13$inputs = [
14       // int data
15/*1*/  0,
16       1,
17       12345,
18       -2345,
19       4294967295,  // largest decimal
20       4294967296,
21
22       // float data
23/* 7*/ 12.3456789000e10,
24
25       // boolean data
26/* 8*/ true,
27       false,
28       TRUE,
29       FALSE,
30
31       // empty data
32/*12*/ "",
33       '',
34];
35
36// loop through each element of $inputs to check the behaviour of decbin()
37foreach ($inputs as $i => $input) {
38    $iterator = $i + 1;
39    echo "\n-- Iteration $iterator --\n";
40    try {
41        var_dump(decbin($input));
42    } catch (TypeError $exception) {
43        echo $exception->getMessage() . "\n";
44    }
45}
46
47?>
48--EXPECT--
49*** Testing decbin() : usage variations ***
50
51-- Iteration 1 --
52string(1) "0"
53
54-- Iteration 2 --
55string(1) "1"
56
57-- Iteration 3 --
58string(14) "11000000111001"
59
60-- Iteration 4 --
61string(32) "11111111111111111111011011010111"
62
63-- Iteration 5 --
64decbin(): Argument #1 ($num) must be of type int, float given
65
66-- Iteration 6 --
67decbin(): Argument #1 ($num) must be of type int, float given
68
69-- Iteration 7 --
70decbin(): Argument #1 ($num) must be of type int, float given
71
72-- Iteration 8 --
73string(1) "1"
74
75-- Iteration 9 --
76string(1) "0"
77
78-- Iteration 10 --
79string(1) "1"
80
81-- Iteration 11 --
82string(1) "0"
83
84-- Iteration 12 --
85decbin(): Argument #1 ($num) must be of type int, string given
86
87-- Iteration 13 --
88decbin(): Argument #1 ($num) must be of type int, string given
89