Re: [RFC] Comparison and conversion inconsistency - need more info

From: Date: Sat, 16 Nov 2013 11:22:47 +0000
Subject: Re: [RFC] Comparison and conversion inconsistency - need more info
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14  Groups: php.internals 
Request: Send a blank email to internals+get-70172@lists.php.net to get a copy of this message
Hi,

What about the following PHP logic:
var_dump(null == 0); // TRUE
var_dump(null < -1); // TRUE
var_dump(null > -1); // FALSE

How can you explain that ?

Greetings
Marc

Am 15.11.2013 00:03, schrieb Yasuo Ohgaki:
> Hi all,
> 
> On Tue, Nov 12, 2013 at 4:03 AM, Sanford Whiteman <
> swhitemanlistens-software@cypressintegrated.com> wrote:
> 
>>> You don't have to think the current documentation is awful to find ways
>>> of improving it.
>>
>> Sure, go for it!
> 
> 
> I wrote my misunderstanding to my personal blog. It seems many people
> misunderstand it, just like me :)
> 
> Any improvement/correction?
> min() manual page is better to be updated. I'll add min() example blow to
> min() manual
> page also.
> 
> Index: operators.xml
> ===================================================================
> --- operators.xml (リビジョン 332115)
> +++ operators.xml (作業コピー)
> @@ -1262,7 +1262,7 @@
>        <row>
>         <entry><type>bool</type> or
> <type>null</type></entry>
>         <entry>anything</entry>
> -       <entry>Convert to <type>bool</type>, &false; &lt;
> &true;</entry>
> +       <entry>Convert to <type>bool</type> both side, &false; &lt;
> &true;</entry>
>        </row>
>        <row>
>         <entry><type>object</type></entry>
> @@ -1298,8 +1298,28 @@
>       </tbody>
>      </tgroup>
>     </table>
> +
>     <para>
>      <example>
> +     <title>Boolean/null comparison</title>
> +     <programlisting role="php">
> +<![CDATA[
> +<?php
> +// Bool and null are compared as bool always
> +var_dump(1 == TRUE);  // TRUE - same as (bool)1 == TRUE
> +var_dump(0 == FALSE); // TRUE - same as (bool)0 == FALSE
> +var_dump(100 < TRUE); // FALSE - same as (bool)100 < TRUE
> +var_dump(-10 < FALSE);// FALSE - same as (bool)-10 < FALSE
> +var_dunp(min(-100,-10, NULL, 10, 100); // NULL - (bool)NULL < (bool)-100
> is FALSE < TRUE
> +?>
> +]]>
> +     </programlisting>
> +    </example>
> +   </para>
> +
> +
> +   <para>
> +    <example>
>       <title>Transcription of standard array comparison</title>
>       <programlisting role="php">
>  <![CDATA[
> 


Thread (37 messages)

« previous php.internals (#70172) next »