sobota, 5 października 2019

Rzutowanie na typ Integer & Boolean


--------------------------------------------------------
TypeHint|TypeHint | Kastowanie   | powiązane funkcje 
return  |argument | w nawiasach  |
--------|---------|--------------|----------------------
int     | int     | int,integer  |is_int,is_integer,is_long
bool    | bool    | bool,booblean|is_bool
--------------------------------------------------------

Kastowanie/pobieranie wartości poprzez (int) $var, intval($var), settype($var, 'int') konwertuje wartości tak samo:

wartość |typ $var|var_dump( |var_dump(    |settype($var,'int');|
$var    |        |(int)$var)|intval($var))|var_dump($var);     |
--------|--------|----------|-------------|--------------------|
'5'     | string | int(5)   | int(5)      | int(5)             |
'05'    | string | int(5)   | int(5)      | int(5)             |
'0.0'   | string | int(0)   | int(0)      | int(0)             |
'5.'    | string | int(5)   | int(5)      int(5)             |
' 5 '   | string | int(5)   | int(5)      int(5)             |
' 5 a'  | string | int(5)   int(5)      int(5)             |
'a 5 '  | string | int(0)   | int(0)      int(0)             |
'a5'    | string | int(0)   int(0)      int(0)             |
'a'     | string | int(0)   | int(0)      int(0)             |
'.5'    | string | int(0)   int(0)      int(0)             | 
''      | string | int(0)   int(0)      int(0)             |
'  '    | string | int(0)   int(0)      int(0)             |
5.1     | double | int(5)   | int(5)      int(5)             |
.5      | double | int(0)   int(0)      int(0)             |
0.5     | double | int(0)   int(0)      int(0)             |
true    | boolean| int(1)   int(1)      int(1)             |
false   | boolean| int(0)   | int(0)      int(0)             |
null    | null   | int(0)   | int(0)      | int(0)             | 
---------------------------------------------------------------|

Kastowanie/pobieranie wartości prawda/fałsz za pomocą czterech sposobów zawsze zwraca taki sam wynik. Zwróć uwagę na wyniki oznaczone kolorem czerwonym. Jeżeli przekarzesz zmienną do instrukcji warunkowej if jej wartość zostanie rzutowana na typ boolean, zbędne jest przyrównywanie w ten sposób if ($bool === true) {...}. 

 wartość  | typ   |var_dump|var_dump|settype(       |var_dump(|
   $var   | $var  |((bool) |(boolval|$var,'bool');  |!! $var  | 
          |       |$var)   |($var)) |var_dump($var);|)        |
----------|-------|--------|--------|---------------|---------|
''        |string | false  | false  | false         | false   |
' '       |string | true   | true   | true          true    |
'1'       |string | true   | true   | true          true    | 
'0'       |string | false  | false  false         false   | 
'0.0'     |string | true   | true   | true          | true    | 
'a'       |string | true   | true   true          true    | 
'null'    |string | true   | true   true          true    | 
'false'   |string | true   | true   true          true    | 
0         |integer| false  | false  false         false   |
1         |integer| true   | true   | true          true    | 
-0        |integer| false  | false  | false         | false   |
-1        |integer| true   | true   true          true    | 
0.0       |double | false  | false  false         false   |
-0.0      |double | false  | false  | false         | false   |
0.1       |double | true   | true   true          true    | 
-0.1      |double | true   | true   true          true    |
[]        |array  | false  | false  false         false   | 
['']      |array  | true   | true   true          true    |
[0]       |array  | true   | true   true          true    |
(object)[]|object | true   | true   true          true    |
--------------------------------------------------------------|




Brak komentarzy:

Prześlij komentarz