philip Wed May 28 01:10:57 2003 EDT Added files: /phpdoc/en/appendices comparisons.xml Log: 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 :)
Index: phpdoc/en/appendices/comparisons.xml +++ phpdoc/en/appendices/comparisons.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <appendix id="types.comparisons"> <title>PHP type comparison tables</title> <para> The following tables demonstrate behaviors for PHP <link linkend="ref.types">types</link> and <link linkend="language.operators.comparison">comparison operators</link>, for both loose and strict comparisons. This supplemental is also related to the manual section on <link linkend="ref.types">type juggling</link>. Inspiration was provided by various user comments and by the work over at <ulink url="&url.blueshoes.comparisons;">BlueShoes</ulink>. </para> <para> Before utilizing these tables, it's important to understand types and their meanings. For example, <literal>"42"</literal> is a <type>string</type> while <literal>42</literal> is an <type>integer</type>. &false; is a boolean while <literal>"false"</literal> is a string. </para> <note> <para> HTML Forms do not pass integers, floats, or booleans, they pass strings. To find out of a string is numeric, you may use <function>is_numeric</function>. </para> </note> <para> <table> <title>Comparisons of <varname>$x</varname> with PHP functions</title> <tgroup cols="6"> <thead> <row> <entry> </entry> <entry><function>gettype</function></entry> <entry><function>empty</function></entry> <entry><function>is_null</function></entry> <entry><function>isset</function></entry> <entry><type>boolean</type></entry> </row> </thead> <tbody> <row> <entry><literal>$x = "";</literal></entry> <entry><type>string</type></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = &null;</literal></entry> <entry><type>NULL</type></entry> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>var $x;</literal></entry> <entry><type>NULL</type></entry> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = array();</literal></entry> <entry><type>array</type></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = false;</literal></entry> <entry><type>boolean</type></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = 1;</literal></entry> <entry><type>integer</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = 42;</literal></entry> <entry><type>integer</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = 0;</literal></entry> <entry><type>integer</type></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = -1;</literal></entry> <entry><type>integer</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = "1";</literal></entry> <entry><type>string</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = "0";</literal> *</entry> <entry><type>string</type></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>$x = "-1";</literal></entry> <entry><type>string</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = "php";</literal></entry> <entry><type>string</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = "true";</literal></entry> <entry><type>string</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> <row> <entry><literal>$x = "false";</literal></entry> <entry><type>string</type></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> </row> </tbody> </tgroup> </table> </para>
<para> <table> <title>Loose comparisons with <literal>==</literal></title> <tgroup cols="12"> <thead> <row> <entry> </entry> <entry>&true;</entry> <entry>&false;</entry> <entry><literal>1</literal></entry> <entry><literal>0</literal></entry> <entry><literal>-1</literal></entry> <entry><literal>"1"</literal></entry> <entry><literal>"0"</literal></entry> <entry><literal>"-1"</literal></entry> <entry>&null;</entry> <entry><literal>array()</literal></entry> <entry><literal>"php"</literal></entry> </row> </thead> <tbody> <row> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> </row> <row> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>1</literal></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>0</literal></entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> </row> <row> <entry><literal>-1</literal></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"1"</literal></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"0"</literal></entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"-1"</literal></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>NULL</literal></entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>array()</literal></entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"php"</literal></entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> </row> </tbody> </tgroup> </table> </para> <para> <table> <title>Strict comparisons with <literal>===</literal></title> <tgroup cols="12"> <thead> <row> <entry> </entry> <entry>&true;</entry> <entry>&false;</entry> <entry><literal>1</literal></entry> <entry><literal>0</literal></entry> <entry><literal>-1</literal></entry> <entry><literal>"1"</literal></entry> <entry><literal>"0"</literal></entry> <entry><literal>"-1"</literal></entry> <entry>&null;</entry> <entry><literal>array()</literal></entry> <entry><literal>"php"</literal></entry> </row> </thead> <tbody> <row> <entry>&true;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>1</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>0</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>-1</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"1"</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"0"</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"-1"</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry>&null;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> <entry>&false;</entry> </row> <row> <entry><literal>array()</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> <entry>&false;</entry> </row> <row> <entry><literal>"php"</literal></entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&false;</entry> <entry>&true;</entry> </row> </tbody> </tgroup> </table> </para> <note> <title>PHP 3.0 note</title> <para> The string value <literal>"0"</literal> was considered non-empty in PHP 3, this behavior changed in PHP 4 where it's now seen as empty. </para> </note> </appendix> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
-- PHP Documentation Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php