Reply to Re: TRUE and FALSE are treated differently

Your name:

Reply:


Posted by A Bit Narked on 01/08/08 12:46

On Sun, 6 Jan 2008 23:19:45 +0000,
Toby A Inkster <usenet200712@tobyinkster.co.uk> wrote:

>A Bit Narked wrote:
>
>> And yet you can echo true. The output is '1'.
>
>No -- you can't echo a boolean in PHP. Why you try, the boolean is
>implicitly cast to a string.
>
>This:
>
> echo $bool;
>
>is actually executed as if you coded this:
>
> echo (string)$bool;
>
>If you look up the manual on type casting, you'll find that FALSE is cast
>to an empty string, and TRUE is cast to a non-empty string.
>
>If you cast to an integer instead of a string, then you'll find that FALSE
>is cast to 0, which seems to be what you want.
>
> echo (int)FALSE;

Apologies for imprecise expression :-) PHP provides free
casting (e.g. to string in echo) so I ignore it.

My real point is that there is no logical relationship between a
boolean value of TRUE and a string value '1' _except_ where the
same relationship yields a string value '0' for boolean FALSE.
I.e., the C precedent.

I'm not fashed by the idea that there's a special boolean type
whose values are TRUE and FALSE. But logically, the string
representations of such sui generis values should be 'true' and
'false'. There is no logic whatever in string representions of
'1' and ''. No one has articulated a relationship such that
'1' and '' makes any sort of sense.

One of the basic principles of good design is predictability.
'From one thing know ten thousand things' as the Chinese stated
it ages ago. So if there's a well-known precedent, we should
follow it unless we have a powerful reason for not doing ('Ensure
that everyone after us makes the same mistake we did', as Maurice
Wilkes put it, to appreciative laughter). And whatever we do
should be internally consistent. So the calling sequence for
some new function should be guessable by anyone who knows the
sequences of similar functions, one value should tell us about
neighboring values, and so forth.

The PHP developers' choice for the string reps of true and false
violate this principle all to buggery, which is what got up my
nostril.

I thought everyone here would immediately see how daft it is, but
I expect we're circling the drain as a species precisely because
so many people -even very smart ones- go through life accepting
without examination that 'whatever is, is right'.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация