rfc:typehint

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
Last revisionBoth sides next revision
rfc:typehint [2008/04/17 14:36] feliperfc:typehint [2008/04/17 16:59] – typo felipe
Line 4: Line 4:
   * Author: Felipe Pena <felipensp@gmail.com>   * Author: Felipe Pena <felipensp@gmail.com>
   * Status: [[http://news.php.net/php.internals/37049|Under Discussion]]   * Status: [[http://news.php.net/php.internals/37049|Under Discussion]]
 +
  
 ====== Details of implementation ====== ====== Details of implementation ======
 **Parameter type hint:** **Parameter type hint:**
-  - The behavior when the default parameter value is ''NULL'' was keeped.+  - The behavior when the default parameter value is ''NULL'' was kept.
 **Both:** **Both:**
   - Binary and unicode string are specified by ''string''.   - Binary and unicode string are specified by ''string''.
Line 128: Line 129:
       - isObject()       - isObject()
       - isResource()       - isResource()
 +
  
  
 ==== Examples ==== ==== Examples ====
 +
 +=== With default parameter value ===
 +<code php>
 +function test(integer $value = '1') {
 +}
 +// Fatal error: Default value for parameters with integer type hint can only be the exact type or NULL
 +</code>
  
 === integer / int === === integer / int ===
Line 138: Line 147:
  
 test(1); test(1);
-test("1337"); 
 test(-1); test(-1);
-test("1."); // Catchable fatal error: Argument 1 passed to test() must be of the type integer, string given +test("1.");  
- +// Catchable fatal error: Argument 1 passed to test() must be of the type integer, string given ...
-function test(integer $value = '1') { +
-+
-// Fatal error: Default value for parameters with integer type hint can only be the exact type or NULL+
 </code> </code>
  
Line 154: Line 159:
 test(1.1); test(1.1);
 test(.1); test(.1);
-test("1."); +test("1."); // Catchable fatal error: Argument 1 passed to test() must be of the type double, string given
-test("1337"); // Catchable fatal error: Argument 1 passed to test() must be of the type double, string given +
- +
-function test(double $value = '1') { +
-+
-// Fatal error: Default value for parameters with double type hint can only be the exact type or NULL+
 </code> </code>
  
Line 168: Line 168:
  
 test(false); test(false);
-test(0); +test(0); // Catchable fatal error: Argument 1 passed to test() must be of the type boolean, null given
-test(1); +
-test('0'); +
-test('1'); +
-test(''); +
-test(null); // Catchable fatal error: Argument 1 passed to test() must be of the type boolean, null given+
 </code> </code>
  
Line 192: Line 187:
 test(new stdclass); test(new stdclass);
 test(NULL); // Catchable fatal error: Argument 1 passed to test() must be of the type object, null given test(NULL); // Catchable fatal error: Argument 1 passed to test() must be of the type object, null given
- 
-function test(object $value = 1) { 
-} 
-// Fatal error: Default value for parameters with object type hint can only be the exact type or NULL 
 </code> </code>
  
rfc/typehint.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1