From 734f9bc5bf812d6e89ac06873ccf95974596606e Mon Sep 17 00:00:00 2001 From: Philip Olson Date: Wed, 28 May 2003 05:10:57 +0000 Subject: [PATCH] Initial documentation. This appendix compares various functions, comparison operators, and types. # Not yet put into manual.xml.in until others have a look at this :) git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@128976 c90b9560-bf6c-de11-be94-00142212c4b1 --- appendices/comparisons.xml | 556 +++++++++++++++++++++++++++++++++++++ 1 file changed, 556 insertions(+) create mode 100644 appendices/comparisons.xml diff --git a/appendices/comparisons.xml b/appendices/comparisons.xml new file mode 100644 index 0000000000..c1b3da47be --- /dev/null +++ b/appendices/comparisons.xml @@ -0,0 +1,556 @@ + + + + PHP type comparison tables + + The following tables demonstrate behaviors for PHP + types and + comparison + operators, for both loose and strict comparisons. This + supplemental is also related to the manual section on + type juggling. Inspiration was provided + by various user comments and by the work over at + BlueShoes. + + + Before utilizing these tables, it's important to understand types and their + meanings. For example, "42" is a string + while 42 is an integer. &false; is a + boolean while "false" is a string. + + + + HTML Forms do not pass integers, floats, or booleans, they pass strings. + To find out of a string is numeric, you may use + is_numeric. + + + + + Comparisons of <varname>$x</varname> with PHP functions + + + +   + gettype + empty + is_null + isset + boolean + + + + + $x = ""; + string + &true; + &false; + &true; + &false; + + + $x = &null; + NULL + &true; + &true; + &false; + &false; + + + var $x; + NULL + &true; + &true; + &false; + &false; + + + $x = array(); + array + &true; + &false; + &true; + &false; + + + $x = false; + boolean + &true; + &false; + &true; + &false; + + + $x = 1; + integer + &false; + &false; + &true; + &true; + + + $x = 42; + integer + &false; + &false; + &true; + &true; + + + $x = 0; + integer + &true; + &false; + &true; + &false; + + + $x = -1; + integer + &false; + &false; + &true; + &true; + + + $x = "1"; + string + &false; + &false; + &true; + &true; + + + $x = "0"; * + string + &true; + &false; + &true; + &false; + + + $x = "-1"; + string + &false; + &false; + &true; + &true; + + + $x = "php"; + string + &false; + &false; + &true; + &true; + + + $x = "true"; + string + &false; + &false; + &true; + &true; + + + $x = "false"; + string + &false; + &false; + &true; + &true; + + + +
+
+ + + + Loose comparisons with <literal>==</literal> + + + +   + &true; + &false; + 1 + 0 + -1 + "1" + "0" + "-1" + &null; + array() + "php" + + + + + &true; + &true; + &false; + &true; + &false; + &true; + &true; + &false; + &true; + &false; + &false; + &true; + + + &false; + &false; + &true; + &false; + &true; + &false; + &false; + &true; + &false; + &true; + &true; + &false; + + + 1 + &true; + &false; + &true; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + + + 0 + &false; + &true; + &false; + &true; + &false; + &false; + &true; + &false; + &true; + &false; + &true; + + + -1 + &true; + &false; + &false; + &false; + &true; + &false; + &false; + &true; + &false; + &false; + &false; + + + "1" + &true; + &false; + &true; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + + + "0" + &false; + &true; + &false; + &true; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + + + "-1" + &true; + &false; + &false; + &false; + &true; + &false; + &false; + &true; + &false; + &false; + &false; + + + NULL + &false; + &true; + &false; + &true; + &false; + &false; + &false; + &false; + &true; + &true; + &false; + + + array() + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + &false; + + + "php" + &true; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + + + +
+
+ + + + Strict comparisons with <literal>===</literal> + + + +   + &true; + &false; + 1 + 0 + -1 + "1" + "0" + "-1" + &null; + array() + "php" + + + + + &true; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + + + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + + + 1 + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + + + 0 + &false; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + + + -1 + &false; + &false; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + &false; + + + "1" + &false; + &false; + &false; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + &false; + + + "0" + &false; + &false; + &false; + &false; + &false; + &false; + &true; + &false; + &false; + &false; + &false; + + + "-1" + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + &false; + &false; + &false; + + + &null; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + &false; + &false; + + + array() + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + &false; + + + "php" + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &false; + &true; + + + +
+
+ + PHP 3.0 note + + The string value "0" was considered non-empty in + PHP 3, this behavior changed in PHP 4 where it's now seen as empty. + + +
+ + +