rfc:comparison_inconsistency
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
rfc:comparison_inconsistency [2014/01/02 20:04] – yohgaki | rfc:comparison_inconsistency [2014/01/21 18:57] – yohgaki | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PHP RFC: Existing | + | ====== PHP RFC: Existing |
* Version: 0.1 | * Version: 0.1 | ||
- | * Date: 2013-10-31 | + | * Date: 2014-01-08 |
* Author: Yasuo Ohgaki < | * Author: Yasuo Ohgaki < | ||
* Status: Draft (or Under Discussion or Accepted or Declined) | * Status: Draft (or Under Discussion or Accepted or Declined) | ||
Line 137: | Line 137: | ||
" | " | ||
- | === String Integer conversion === | + | ==== String Integer conversion |
PHP converts " | PHP converts " | ||
Line 157: | Line 157: | ||
https:// | https:// | ||
- | === NAN/INF of float === | + | ==== String decrements ==== |
+ | |||
+ | String decrements is inconsistent | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ==== NAN/INF of float ==== | ||
NAN/INF issue. | NAN/INF issue. | ||
Line 178: | Line 184: | ||
This could be mitigated by GMP float support. | This could be mitigated by GMP float support. | ||
- | ==== Function/ | ||
- | === base_convert ==== | + | ==== Object Array conversion of numeric property/ |
+ | |||
+ | Object/ | ||
+ | https:// | ||
+ | |||
+ | $ php -v | ||
+ | PHP 5.5.7 (cli) (built: Dec 11 2013 07:51:06) | ||
+ | Copyright (c) 1997-2013 The PHP Group | ||
+ | Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies | ||
+ | |||
+ | $ php -r '$obj = new StdClass; $obj-> | ||
+ | object(stdClass)# | ||
+ | [" | ||
+ | int(234) | ||
+ | } | ||
+ | int(567) | ||
+ | |||
+ | |||
+ | Notice: Undefined offset: 12 in Command line code on line 1 | ||
+ | array(1) { | ||
+ | [" | ||
+ | int(234) | ||
+ | } | ||
+ | NULL <= SHOULD BE int(234) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Function/ | ||
+ | |||
+ | ==== is_numeric ==== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | ==== base_convert ==== | ||
https:// | https:// | ||
- | === min() function === | + | ==== min() function |
https:// | https:// | ||
Line 191: | Line 231: | ||
This is not a bug. If one of operand is BOOL(or NULL), both operands are converted to BOOL and evaluated as BOOL. It may be good idea that document this behavior in min() manual. | This is not a bug. If one of operand is BOOL(or NULL), both operands are converted to BOOL and evaluated as BOOL. It may be good idea that document this behavior in min() manual. | ||
- | === Return value of wrong internal function/ | + | ==== Return value of wrong internal function/ |
If not all, almost all functions return NULL when required function parameter is missing or wrong type. However, almost all functions return FALSE when they have errors. | If not all, almost all functions return NULL when required function parameter is missing or wrong type. However, almost all functions return FALSE when they have errors. | ||
Line 230: | Line 270: | ||
Bug reports are not verified carefully. Removing wrong one, adding proper one is appreciated. | Bug reports are not verified carefully. Removing wrong one, adding proper one is appreciated. | ||
- | == Developer Guideline == | + | ===== Developer Guideline |
* Internal function/ | * Internal function/ | ||
Line 236: | Line 276: | ||
* Internal function/ | * Internal function/ | ||
- | == User Guideline == | + | ===== User Guideline |
* User should not rely return value only for failure condition, but should rely error/ | * User should not rely return value only for failure condition, but should rely error/ |