On November 19, 2001 07:26 am, Simone Cortesi wrote:
> Hi,
>
> I vas translating the following :
>
> <!ENTITY return.falseproblem '<warning><simpara>This function may
> return &false;, but may also return a value evaluating to &false; in
> a simple if statement. Please use <link
> linkend="language.operators.comparison">the === operator</link> for
> testing the return value of this
> function.</simpara></warning>'>
>
> found in 'language-snippets.ent', but i cant get the meaning of this
> sentence: "but may also return a value evaluating to &false; in a
> simple if statement".

        The sentence is attempting to explain that some functions 
        may return values that can be interpreted as false within
        a conditional block.

        Take the following example:

        $str = 'abcdef';
        $chr = 'a';

        if ($pos = strpos ($str, $chr) )
                echo "'$chr' found in '$str' at position $pos";

        'a' definitely exists in the string. However, since strpos() returns
        0 - the position that 'a' is at - the if statement considers
        the result to be false.

        For cases like this, the user needs to use code more like:

        $str = 'abcdef';
        $chr = 'a';

        if (FALSE !== ($pos = strpos ($str, $chr)) )
                echo "'$chr' found in '$str' at position $pos";


        FTM, they could also do:

        $str = 'abcdef';
        $chr = 'a';

        $pso = strpos ($str, $chr);
        if ( is_int ($pos) )
                echo "'$chr' found in '$str'";

-- 
Zak Greant

PHP Quality Assurance Team
http://qa.php.net/

"We must be the change we wish to see." - M. K. Ghandi

Reply via email to