Re: changing NULL behavior in PHP arithmetic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  From: Ashley Sheridan 
  To: cr.vegelin@xxxxxxxxx 
  Cc: php-general@xxxxxxxxxxxxx 
  Sent: Thursday, April 15, 2010 10:08 AM
  Subject: Re:  changing NULL behavior in PHP arithmetic


  On Thu, 2010-04-15 at 09:46 +0200, cr.vegelin@xxxxxxxxx wrote: 
Hi All,

Is there an option in PHP to change the behavior of NULL in PHP functions ?
Now PHP uses NULL as a 0 (zero) for arithmetic, for example:
NULL + 6 = 6
NULL * 6 = 0
NULL / 6 = 0
6 / NULL = Division by zero

What I need is the same behavior as #N/A (or =NA()) in Excel, where:
#N/A + 6 = #N/A
#N/A * 6 = #N/A
#N/A / 6 = #N/A
6 / #N/A = #N/A

because arithmetic operations with "Unknown" operands should result to "Unknown" ...

TIA, Cor

  You can't really, because PHP is a loosely typed language, which means it silently converts values as required by the situation. When you use mathematical operators, PHP converts the values to numbers, and NULL maps to a 0 (as does the boolean false and an empty string)

  The only way I can see to fix your problem is to check the value of the variables you are working on with something like is_int()

        Thanks,
        Ash
        http://www.ashleysheridan.co.uk


       

Thanks for replying. 
I tried the predefined PHP constant NAN. 
However, NAN + 6 = 6, so NAN is can't be used either.

To bypass the problem, I now use is_null().
is_int() can also be used, but does it have advantages over is_null() ?

Thanks, Cor

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux