Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:70089 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 54978 invoked from network); 10 Nov 2013 20:23:44 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Nov 2013 20:23:44 -0000 Authentication-Results: pb1.pair.com header.from=yohgaki@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=yohgaki@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.217.175 as permitted sender) X-PHP-List-Original-Sender: yohgaki@gmail.com X-Host-Fingerprint: 209.85.217.175 mail-lb0-f175.google.com Received: from [209.85.217.175] ([209.85.217.175:37930] helo=mail-lb0-f175.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4C/72-42270-E4BEF725 for ; Sun, 10 Nov 2013 15:23:43 -0500 Received: by mail-lb0-f175.google.com with SMTP id p9so147784lbv.20 for ; Sun, 10 Nov 2013 12:23:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=9k3ZKMJDY/pIFMaOvGK/0pzw66P3K2qRtDVJw6z38U8=; b=Stm9KpxBL4bgdvX2BcKcpmS6gUr6sYhOg9nDjZvA6EMc+pjOydaEgfC6fiwjMbArCj dQVewvMbPtFwrjwSmifQDtkrh3m0zw+J74AH5JX7gzeCVrnypgdEZU5eY6lxByUA1mQc u3/Y9gm7uGNZYff6x9BfEKgMC/RzDAxCOUoXqOqE0Pz1vgi76l+kqPTC+FomB4R6Ccsk Hq0ZbOQbyEG5cBl6rDXOIQKZpsvLumKMu7tn8qvxYBMWNbws38P1n/YEmBEsCKSVUPm5 QVNsY6c5PJPptOrBYq67d9xlkimxIjMKX6TRKDkTnQg27YoEffW4SfAGav0gC+E6R0ge yQDQ== X-Received: by 10.152.28.9 with SMTP id x9mr2586367lag.27.1384115019487; Sun, 10 Nov 2013 12:23:39 -0800 (PST) MIME-Version: 1.0 Sender: yohgaki@gmail.com Received: by 10.112.154.201 with HTTP; Sun, 10 Nov 2013 12:22:59 -0800 (PST) In-Reply-To: References: Date: Mon, 11 Nov 2013 05:22:59 +0900 X-Google-Sender-Auth: lUZlYJNrFy-s4GwKDAdp4fbjGII Message-ID: To: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=089e0160b8fe109f8304ead86438 Subject: Re: [RFC] Comparison and conversion inconsistency - need more info From: yohgaki@ohgaki.net (Yasuo Ohgaki) --089e0160b8fe109f8304ead86438 Content-Type: text/plain; charset=UTF-8 Hi all, On Mon, Nov 11, 2013 at 4:49 AM, Yasuo Ohgaki wrote: > I really surprised by myself that I've never bitten by the > misunderstanding more than 10 years. > Anyway, the manual is better to explain explicitly > > TRUE always evaluated as 1 while > NULL/FALSE is evaluated as 0 or least. > > Sorry for the confusion. > > Any comments? > I still didn't get it right :( [yohgaki@dev ~]$ php -r "var_dump((TRUE > 100));" bool(false) [yohgaki@dev ~]$ php -r "var_dump((TRUE < 100));" bool(false) [yohgaki@dev ~]$ php -r "var_dump((TRUE > -100));" bool(false) [yohgaki@dev ~]$ php -r "var_dump((TRUE < -100));" bool(false) TRUE/FALSE only evaluated as 1/0 otherwise always return FALSE in expression. [yohgaki@dev ~]$ php -r "var_dump((NULL < -100));" bool(true) [yohgaki@dev ~]$ php -r "var_dump((NULL > -100));" bool(false) NULL behaves differently, though. Because min()/max() has to use < or > results became depends on how it compares. Regards, -- Yasuo Ohgaki yohgaki@ohgaki.net --089e0160b8fe109f8304ead86438--