-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathtypes.xml
More file actions
161 lines (148 loc) · 5.19 KB
/
types.xml
File metadata and controls
161 lines (148 loc) · 5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: pastore Status: ready -->
<!-- Reviewed: no Maintainer: cucinato -->
<!-- CREDITS: cucinato -->
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook">
<title>Tipi di dati</title>
<sect1 xml:id="language.types.intro">
<title>Introduzione</title>
<para>
Ogni singola espressione in PHP ha uno dei seguenti
tipi predefiniti a seconda del suo valore:
<itemizedlist>
<listitem><simpara><type>null</type></simpara></listitem>
<listitem><simpara><type>bool</type></simpara></listitem>
<listitem><simpara><type>int</type></simpara></listitem>
<listitem><simpara><type>float</type> (numero in virgola mobile)</simpara></listitem>
<listitem><simpara><type>string</type></simpara></listitem>
<listitem><simpara><type>array</type></simpara></listitem>
<listitem><simpara><type>object</type></simpara></listitem>
<listitem><simpara><type>callable</type></simpara></listitem>
<listitem><simpara><type>resource</type></simpara></listitem>
</itemizedlist>
</para>
<para>
PHP è un linguaggio tipizzato dinamicamente, il che significa che per impostazione predefinita non
è necessario specificare il tipo di una variabile, poiché questo verrà determinato in
fase di esecuzione. Tuttavia, è possibile tipizzare staticamente alcuni aspetti del
linguaggio tramite l'uso delle
<link linkend="language.types.declarations">dichiarazioni dei tipi</link>.
I diversi tipi supportati dal sistema di tipi di PHP possono essere trovati nella
pagina <link linkend="language.types.type-system">sistema di tipi</link>.
</para>
<para>
I tipi limitano il genere di operazioni che possono essere eseguite su di essi.
Tuttavia, se un'espressione/variabile viene utilizzata in un'operazione che
il suo tipo non supporta, PHP tenterà di effettuare il
<link linkend="language.types.type-juggling">type juggle</link>
del valore in un tipo che supporta l'operazione.
Questo processo dipende dal contesto in cui viene utilizzato il valore.
Per ulteriori informazioni, vedere la sezione
<link linkend="language.types.type-juggling">Type Juggling</link>.
</para>
<tip>
<simpara>
Anche <link linkend="types.comparisons">le tabelle di confronto dei tipi</link>
possono essere utili, in quanto sono presenti vari esempi di confronto
tra valori di tipi diversi.
</simpara>
</tip>
<note>
<simpara>
È possibile forzare la valutazione di un'espressione in un certo tipo
utilizzando un <link linkend="language.types.typecasting">cast di tipo</link>.
Una variabile può anche essere convertita sul posto usando la
funzione <function>settype</function> su di essa.
</simpara>
</note>
<para>
Per controllare il valore e il tipo di un'
<link linkend="language.expressions">espressione</link>,
si usa la funzione <function>var_dump</function>.
Per recuperare il tipo di un'
<link linkend="language.expressions">espressione</link>,
si usa la funzione <function>get_debug_type</function>.
Tuttavia, per controllare se un'espressione è di un certo tipo si usano
<!-- TODO When PhD support is there: <function>is_<replaceable>type</replaceable></function> -->
invece le funzioni <literal>is_<replaceable >type</replaceable></literal>.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a_bool = true; // un booleano
$a_str = "foo"; // una stringa
$a_str2 = 'foo'; // una stringa
$an_int = 12; // un intero
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Se è un intero, incrementalo di quattro
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Se $a_bool è una stringa, stampala a video
if (is_string($a_bool)) {
echo "Stringa: $a_bool";
}
?>
]]>
</programlisting>
&example.outputs.8;
<screen>
<![CDATA[
bool
string
int(16)
]]>
</screen>
</informalexample>
</para>
<note>
<simpara>
Prima di PHP 8.0.0, dove <function>get_debug_type</function> non è
disponibile, è possibile utilizzare la funzione <function>gettype</function>.
Tuttavia, non usa i nomi dei tipi canonici.
</simpara>
</note>
</sect1>
&language.types.type-system;
&language.types.null;
&language.types.boolean;
&language.types.integer;
&language.types.float;
&language.types.string;
&language.types.numeric-strings;
&language.types.array;
&language.types.object;
&language.types.enumerations;
&language.types.resource;
&language.types.callable;
&language.types.mixed;
&language.types.void;
&language.types.never;
&language.types.relative-class-types;
&language.types.singleton;
&language.types.iterable;
&language.types.declarations;
&language.types.type-juggling;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->