xref: /PHP-5.3/Zend/tests/bug31098.phpt (revision da0a76c5)
1--TEST--
2Bug #31098 (isset() / empty() incorrectly returns true in dereference of a wrong type)
3--FILE--
4<?php
5$a = '';
6var_dump(isset($a->b));
7$a = 'a';
8var_dump(isset($a->b));
9$a = '0';
10var_dump(isset($a->b));
11$a = '';
12var_dump(isset($a['b']));
13$a = 'a';
14var_dump(isset($a['b']));
15$a = '0';
16var_dump(isset($a['b']));
17
18$simpleString = "Bogus String Text";
19echo isset($simpleString->wrong)?"bug\n":"ok\n";
20echo isset($simpleString["wrong"])?"ok\n":"bug\n";
21echo isset($simpleString[-1])?"bug\n":"ok\n";
22echo isset($simpleString[0])?"ok\n":"bug\n";
23echo isset($simpleString["0"])?"ok\n":"bug\n";
24echo isset($simpleString["16"])?"ok\n":"bug\n";
25echo isset($simpleString["17"])?"bug\n":"ok\n";
26echo isset($simpleString["wrong"][0])?"bug\n":"ok\n";
27echo $simpleString->wrong === null?"ok\n":"bug\n";
28echo $simpleString["wrong"] === "B"?"ok\n":"bug\n";
29echo $simpleString["0"] === "B"?"ok\n":"bug\n";
30$simpleString["wrong"] = "f";
31echo $simpleString["0"] === "f"?"ok\n":"bug\n";
32?>
33--EXPECTF--
34bool(false)
35bool(false)
36bool(false)
37bool(false)
38bool(true)
39bool(true)
40ok
41ok
42ok
43ok
44ok
45ok
46ok
47ok
48
49Notice: Trying to get property of non-object in %sbug31098.php on line %d
50ok
51ok
52ok
53ok
54