File: expressions.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (219 lines) | stat: -rw-r--r-- 12,672 bytes parent folder | download
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.7 $ -->
 <chapter id="language.expressions">
   <title>Les expressions</title>
   <simpara>
    Les expressions sont la partie la plus importante du PHP. En PHP, presque tout
    ce que vous &eacute;crivez est une expression. La mani&egrave;re la plus simple
    de d&eacute;finir une expression est : "tout ce qui a une valeur".
   </simpara>
   <simpara>
    Les formes les plus simples d'expressions sont les constantes et les variables.
    Lorsque vous &eacute;crivez "$a = 5", vous assignez la valeur '5' &agrave; la
    variable $a. Bien &eacute;videmment, '5' vaut 5 ou, en d'autres termes, '5'
    est une expression avec pour valeur 5 (dans ce cas, '5' est un entier constant).
   </simpara>
   <simpara>
    Apr&egrave;s cette assignation, vous pouvez consid&eacute;rer que $a a pour
    valeur 5 et donc, &eacute;crire $b = $a, revient &agrave; &eacute;crire $b = 5.
    En d'autres termes, $a est une expression avec une valeur de 5. Si tout fonctionne
    correctement, c'est exactement ce qui arrive.
   </simpara>
   <para>
    Un exemple plus complexe concerne les fonctions. Par exemple, consid&eacute;rons
    la fonction suivante :
    <informalexample>
     <programlisting role="php">
&lt;?php
function foo () {
    return 5;
}
?&gt;
     </programlisting>
    </informalexample>
   </para>
   <simpara>
    Consid&eacute;rant que vous &ecirc;tes familier avec le concept de fonction,
    (si ce n'est pas le cas, jetez un oeil au chapitre concernant les fonctions),
    vous serez d'accord que $c = foo() est &eacute;quivalent &agrave; $c = 5, et
    vous aurez tout &agrave; fait raison. Les fonctions sont des expressions qui
    ont la valeur de leur "valeur de retour". Si foo() renvoie 5, la valeur de
    l'expression 'foo()' est 5. Habituellement, les fonctions ne font pas que
    renvoyer une valeur constante mais r&eacute;alisent des traitements.
   </simpara>
   <simpara>
    Bien s&ucirc;r, les valeurs en PHP n'ont pas &agrave; &ecirc;tre des
    valeurs num&eacute;riques, comme c'est souvent le cas. PHP supporte 3
    types de variables scalaires : les valeurs enti&egrave;res, les nombres
    &agrave; virgule flottante et les cha&icirc;nes de caract&egrave;res
    (une variable scalaire est une variable que vous ne pouvez pas scinder en
    morceau, au contraire des tableaux par exemple). PHP supporte aussi deux
    types compos&eacute;s : les tableaux et les objets. Chacun de ces types
    de variables peut &ecirc;tre affect&eacute; ou renvoy&eacute; par une
    fonction.
   </simpara>
   <simpara>
    Les utilisateurs de PHP/FI 2 ne verront aucun changement. Malgr&eacute; tout,
    PHP va plus loin dans la gestion des expressions, comme le font d'autres
    langages. PHP est un langage orient&eacute; expression, dans le sens o&ugrave;
    presque tout est une expression. Consid&eacute;rons l'exemple dont nous avons
    d&eacute;j&agrave; parl&eacute;, '$a = 5'. Il est facile de voir qu'il y a
    deux valeurs qui entrent en jeux ici, la valeur num&eacute;rique constante '5'
    et la valeur de la variable $a qui est mise &agrave; jour &agrave; la valeur 5.
    Mais, la v&eacute;rit&eacute; est qu'il y a une autre valeur qui entre en jeu ici
    et c'est la valeur de l'assignation elle-m&ecirc;me. L'assignation elle-m&ecirc;me
    est assign&eacute;e &agrave; une valeur, dans ce cas-l&agrave; 5. En pratique,
    cela signifie que '$a = 5' est une expression qui a pour valeur 5. Donc,
    &eacute;crire '$b = ($a = 5)' revient &agrave; &eacute;crire '$a = 5; $b = 5;'
    (un point virgule marque la fin d'une instruction). Comme les assignations sont
    analys&eacute; de droite &agrave; gauche, vous pouvez aussi bien &eacute;crire
    '$b = $a = 5'.
   </simpara>
   <simpara>
    Un autre bon exemple du langage orient&eacute; expression est la
    pr&eacute;-incr&eacute;mentation et la post-incr&eacute;mentation, (ainsi que
    la d&eacute;cr&eacute;mentation). Les utilisateurs de PHP/FI 2
    et ceux de nombreux autres langages sont habitu&eacute;s &agrave;
    la notation "variable++" et "variable--". Ce sont les op&eacute;rateurs
    d'incr&eacute;mentation et de d&eacute;cr&eacute;mentation. En PHP/FI 2,
    l'instruction '$a++' n'a aucune valeur (c'est-&agrave;-dire que ce n'est pas
    une expression) et vous ne pouvez donc pas l'utiliser. PHP ajoute les
    possibilit&eacute;s d'incr&eacute;mentation et de d&eacute;cr&eacute;mentation
    comme c'est le cas dans le langage C. En PHP, comme en C, il y a deux types
    d'op&eacute;rateurs d'incr&eacute;mentation (pr&eacute;-incr&eacute;mentation et
    post-incr&eacute;mentation). Les deux types d'op&eacute;rateur
    d'incr&eacute;mentation jouent le m&ecirc;me r&ocirc;le (c'est-&agrave;-dire qu'ils
    incr&eacute;mentent la variable). La diff&eacute;rence vient de la valeur de
    l'op&eacute;rateur d'incr&eacute;mentation. L'op&eacute;rateur de
    pr&eacute;-incr&eacute;mentation, qui s'&eacute;crit '++$variable', &eacute;value
    la valeur incr&eacute;ment&eacute;e (PHP incr&eacute;mente la variable
    avant de lire la valeur de cette variable, d'o&ugrave; le nom de
    'pr&eacute;-incr&eacute;mentation'). L'op&eacute;rateur de post-incr&eacute;mentation,
    qui s'&eacute;crit '$variable++', &eacute;value la valeur de la variable
    avant de l'incr&eacute;menter (PHP incr&eacute;mente la variable apr&egrave;s
    avoir lu sa valeur, d'o&ugrave; le nom de 'post-incr&eacute;mentation').
   </simpara>
   <simpara>
    Un type d'expression tr&egrave;s commun est l'expression de comparaison. Ces expressions
    sont &eacute;valu&eacute;es &agrave; 0 ou 1, autrement dit <literal>FALSE</literal> ou <literal>TRUE</literal> (respectivement). PHP supporte
    les op&eacute;rateurs de comparaison &gt; (plus grand que), =&gt;  (plus grand ou &eacute;gal),
    == (&eacute;gal &agrave;), &lt; (plus petit que), &lt;= (plus petit ou &eacute;gal). Ces expressions sont
    utilis&eacute;es de mani&egrave;re courante dans les instructions conditionnelles, comme l'instruction
    <literal>if</literal>.
   </simpara>
   <simpara>
    Pour le dernier exemple d'expression, nous allons parler des combinaisons
    d'op&eacute;rateurs/assignation. Vous savez que si vous voulez incr&eacute;menter la variable
    $a d'une unit&eacute;, vous devez simplement &eacute;crire '$a++'. Mais si vous voulez ajouter
    la valeur '3' &agrave; votre variable ? Vous pouvez &eacute;crire plusieurs fois '$a++', mais ce
    n'est pas la meilleure des m&eacute;thodes. Un pratique plus courante est d'&eacute;crire
    '$a = $a + 3'. L'expression '$a + 3' correspond &agrave; la valeur $a plus 3, et est
    de nouveau assign&eacute;e &agrave; la variable $a. Donc, le r&eacute;sultat est
    l'incr&eacute;mentation de 3 unit&eacute;s. En PHP, comme dans de nombreux autres
    langages comme le C, vous pouvez &eacute;crire cela de mani&egrave;re plus concise,
    mani&egrave;re qui avec le temps se r&eacute;v&eacute;lera plus claire et plus rapide
    &agrave; comprendre. Ajouter 3 &agrave; la valeur de la variable $a
    peut s'&eacute;crire '$a += 3'. Cela signifie pr&eacute;cis&eacute;ment : "on prend la valeur
    de la variable $a, on ajoute la valeur 3 et on assigne cette valeur &agrave;
    la variable $a". Et pour &ecirc;tre plus concis et plus clair, cette expression est
    plus rapide. La valeur de l'expression '$a += 3', comme l'assignation d'une valeur
    quelconque, est la valeur assign&eacute;e. Il est &agrave; noter que ce n'est pas 3 mais la
    combinaison de la valeur de la variable $a plus la valeur 3. (c'est la valeur qui
    est assign&eacute;e &agrave; la variable $a). N'importe quel op&eacute;rateur binaire
    peut utiliser ce type d'assignation, par exemple '$a -= 5' (soustraction de 5 de
    la valeur de la variable $a), '$b *= 7' (multiplication de la valeur de la variable $b par 7).
   </simpara>
   <para>
    Il y a une autre expression qui peut para&icirc;tre complexe si vous ne l'avez pas
    vue&agrave;-dire dans d'autre langage, l'op&eacute;rateur conditionnel ternaire:
    <informalexample>
     <programlisting role="php">
&lt;?php
  $first ? $second : $third
?&gt;
    </programlisting>
   </informalexample>
    Si la valeur de la premi&egrave;re sous-expression est vraie
    (diff&eacute;rente de 0), alors la deuxi&egrave;me sous-expression est
    &eacute;valu&eacute;e et constitue le r&eacute;sultat de l'expression
    conditionnelle. Sinon, c'est la trois&egrave;me sous-expression qui est
    &eacute;valu&eacute;e et qui constitue le r&eacute;sultat de l'expression.
   </para>
   <para>
    Les exemples suivants devraient vous permettre de mieux comprendre la pr&eacute;- et post-
    incr&eacute;mentation et le concept des expressions en g&eacute;n&eacute;ral:
    <informalexample>
     <programlisting role="php">
&lt;?php
function double($i) {
    return $i*2;
}

$b = $a = 5;        /* assigne la valeur 5 aux variables $a et $b  */
$c = $a++;          /* post-incr&eacute;mentation de la variable $a et assignation de
                       la valeur &agrave; la variable $c */
$e = $d = ++$b;     /* Pr&eacute;-incr&eacute;mentation, et assignation de la valeur aux
                       variables $d et $e  */
/* &agrave; ce niveau, les variables $d et $e sont &eacute;gales &agrave; 6 */
$f = double($d++);  /* assignation du double de la valeur de $d &agrave; la variable $f ($f vaut 12),
                       puis incr&eacute;mentation de la valeur de $d  */
$g = double(++$e);  /* assigne deux fois la valeur de $e <emphasis>apr&egrave;s</emphasis>
                       incr&eacute;mentation, 2*7 = 14 to $g */
$h = $g += 10;      /* Tout d'abord, $g est incr&eacute;ment&eacute;e de 10, et donc $g vaut 24.
                       Ensuite, la valeur de $g, (24) est assign&eacute;e &agrave; la variable $h,
                       qui vaut donc elle aussi 24. */
?&gt;
     </programlisting>
    </informalexample>
   </para>
   <simpara>
    Au d&eacute;but de ce chapitre, nous avons dit que nous allions d&eacute;crire les
    diff&eacute;rents types d'instructions, et donc, comme promis, nous allons voir que
    les expressions peuvent &ecirc;tre des instructions. Mais, attention, toutes les
    expressions ne sont pas des instructions. Dans ce cas-l&agrave;, une instruction
    est de la forme 'expr' ';', c'est-&agrave;-dire, une expression suivie par un point-virgule.
    L'expression <literal>'$b = $a = 5;', '$a = 5'</literal> est valide, 
    mais ce n'est pas une instruction en elle-m&ecirc;me. 
    <literal>'$b = $a = 5'</literal> est une instruction valide.
   </simpara>
   <simpara>
    La derni&egrave;re chose qui m&eacute;rite d'&ecirc;tre mentionn&eacute;e est
    la v&eacute;ritable valeur des expressions. Lorsque vous faites des tests
    sur une variable, dans une boucle conditionnelle par exemple, cela ne vous
    int&eacute;resse pas de savoir qu'elle est la valeur exacte de l'expression.
    Mais vous voulez seulement savoir si le r&eacute;sultat signifie &true; ou &false;
    (PHP n'a pas de type bool&eacute;en). La v&eacute;ritable valeur d'une
    expression en PHP est calcul&eacute;e de la m&ecirc;me mani&egrave;re qu'en Perl.
    Toute valeur num&eacute;rique diff&eacute;rente de 0 est consid&eacute;r&eacute;e
    comme &eacute;tant &true;. Une cha&icirc;ne de caract&egrave;res vide et la cha&icirc;ne
    de caract&egrave;re 0 sont consid&eacute;r&eacute;es comme &false;. Toutes les autres
    valeurs sont vraies. Avec les types de variables non-scalaires (les tableaux et les objets),
    s'ils ne contiennent aucun &eacute;l&eacute;ment, renvoient &false;, sinon,
    ils renvoient &true;.
   </simpara>
   <simpara>
    PHP propose une impl&eacute;mentation compl&egrave;te et d&eacute;taill&eacute;e des
    expressions. PHP documente toutes ses expressions dans le manuel que vous &ecirc;tes
    en train de lire. Les exemples qui vont suivre devraient vous donner une bonne
    id&eacute;e de ce qu'est une expression et comment construire vos propres expressions.
    Dans tout ce qui va suivre, nous &eacute;crirons <replaceable>expr</replaceable> pour
    indiquer toute expression PHP valide.
   </simpara>
  </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:"../manual.ced"
 sgml-exposed-tags:nil
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
 -->