rfc:binary_string_comparison

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:binary_string_comparison [2014/08/17 19:45] – Affected PHP Functionality maberfc:binary_string_comparison [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== PHP RFC: Binary String Comparison ====== ====== PHP RFC: Binary String Comparison ======
   * Version: 0.1   * Version: 0.1
-  * Date: 2014-08-01+  * Date: 2014-08-01, internals on 2014-08-17
   * Author: Marc Bennewitz, php@mabe.berlin   * Author: Marc Bennewitz, php@mabe.berlin
-  * Status: Draft+  * Status: Under Discussion
   * First Published at: http://wiki.php.net/rfc/binary_string_comparison   * First Published at: http://wiki.php.net/rfc/binary_string_comparison
  
Line 29: Line 29:
  
 As a side effect it makes string comparison much faster and force developer to really write what they mean (No need to guess) and to force developers to cast/filter input once which also affects performance. As a side effect it makes string comparison much faster and force developer to really write what they mean (No need to guess) and to force developers to cast/filter input once which also affects performance.
 +
 +On C-Level the function ''zendi_smart_strcmp'' will be unused and marked as deprecated.
  
 === string == string === === string == string ===
-(http://3v4l.org/4KA8M)+(http://3v4l.org/2bIUj)
  
     <?php     <?php
     echo ('1' == '1' ? 'true' : 'false') . " ('1' == '1')\n";     echo ('1' == '1' ? 'true' : 'false') . " ('1' == '1')\n";
     echo ('2' == '1' ? 'true' : 'false') . " ('2' == '1')\n";     echo ('2' == '1' ? 'true' : 'false') . " ('2' == '1')\n";
 +    echo ('0' == '0x0' ? 'true' : 'false') . " ('0' == '0x0')\n";
 +    echo ('0' == '00' ? 'true' : 'false') . " ('0' == '00')\n";
     echo ('1e1' == '10' ? 'true' : 'false') . " ('1e1' == '10')\n";     echo ('1e1' == '10' ? 'true' : 'false') . " ('1e1' == '10')\n";
     echo ('1E1' == '10' ? 'true' : 'false') . " ('1E1' == '10')\n";     echo ('1E1' == '10' ? 'true' : 'false') . " ('1E1' == '10')\n";
Line 51: Line 55:
     true ('1' == '1')     true ('1' == '1')
     false ('2' == '1')     false ('2' == '1')
 +    true ('0' == '0x0')
 +    true ('0' == '00')
     true ('1e1' == '10')     true ('1e1' == '10')
     true ('1E1' == '10')     true ('1E1' == '10')
Line 66: Line 72:
     true ('1' == '1')     true ('1' == '1')
     false ('2' == '1')     false ('2' == '1')
 +    false ('0' == '0x0')
 +    false ('0' == '00')
     false ('1e1' == '10')     false ('1e1' == '10')
     false ('1E1' == '10')     false ('1E1' == '10')
Line 260: Line 268:
 Only non-strict string to string comparison will be affected. Only non-strict string to string comparison will be affected.
 Means the operators ''=='', ''!='', ''<'', ''>'', ''>='', ''>='' and related sorting functions using the default sorting flag ''SORT_REGULAR''. Means the operators ''=='', ''!='', ''<'', ''>'', ''>='', ''>='' and related sorting functions using the default sorting flag ''SORT_REGULAR''.
- 
-===== Future Scope ===== 
-This sections details areas where the feature might be improved in future, but that are not currently proposed in this RFC. 
  
 ===== Proposed Voting Choices ===== ===== Proposed Voting Choices =====
rfc/binary_string_comparison.1408304714.txt.gz · Last modified: 2017/09/22 13:28 (external edit)