Maison  >  Article  >  développement back-end  >  Que sont les expressions en php ?

Que sont les expressions en php ?

怪我咯
怪我咯original
2017-06-20 10:40:532089parcourir

Les

Les expressions sont la pierre angulaire la plus importante de PHP. En PHP, presque tout ce que vous écrivez est une expression. La manière simple mais la plus précise de définir une expression est « tout ce qui a une valeur ».

Les formes d'expression les plus élémentaires sont les constantes et variables. En tapant "$a = 5", la valeur "5" est attribuée à la variable $a. "5", évidemment, a la valeur 5, autrement dit "5" est une expression avec la valeur 5 (ici, "5" est une constante entière).

Après l'affectation, on s'attend à ce que $a ait une valeur de 5, donc si nous écrivons $b = $a , on s'attend à ce que ce soit la même chose que $b = 5. En d’autres termes, $a est une expression qui vaut également 5. Si tout fonctionne correctement, c'est exactement ce qui va se passer.

Un exemple d'expression légèrement plus complexe est une fonction. Par exemple, considérons la fonction suivante :

<?php
function  foo  ()
{
    return  5 ;
}
?>

En supposant que vous soyez déjà familier avec le concept de fonctions (sinon, jetez un œil au chapitre sur les fonctions), puis tapez $c = foo() essentiellement Si nous écrivons $c = 5, c'est correct. Les fonctions sont également des expressions et la valeur d'une expression est leur valeur de retour. Puisque foo() renvoie 5, l'expression "foo()" est également évaluée à 5. Souvent, les fonctions ne renvoient pas seulement une valeur statique, mais peuvent calculer quelque chose.

Bien sûr, les valeurs en PHP ne sont souvent pas des nombres entiers. PHP prend en charge quatre types de valeurs scalaires (les valeurs scalaires ne peuvent pas être divisées en unités plus petites, telles que des tableaux) : valeur entière ( integer ), valeur à virgule flottante ( float ), chaîne valeur ( chaîne ) et booléen ( booléen ). PHP prend également en charge deux types composites : les tableaux et les objets. Les deux types peuvent être affectés à des variables ou renvoyés par des fonctions.

PHP se développe le long du chemin de l'expression comme les autres langages, mais va plus loin. PHP est un langage orienté expression, dans le sens où presque tout est une expression. Prenons l'exemple que nous venons d'étudier, "$a = 5". Évidemment, deux valeurs sont impliquées ici, la valeur de la constante entière 5 et la valeur de la variable $a, qui est également mise à jour à 5. Mais le fait est qu’une valeur supplémentaire est impliquée, à savoir la valeur de la déclaration de valeur ajoutée elle-même. L'instruction d'affectation elle-même est évaluée à la valeur attribuée, qui est 5. En fait, cela signifie que "$a = 5", quoi qu'il fasse, est une expression qui vaut 5. Ainsi, écrire " $b = ( $a = 5)" équivaut à écrire " $a =5; $b =5" (le point-virgule marque la fin de l'instruction). Comme l'ordre des opérations d'affectation est de droite à gauche, vous pouvez également écrire "$b = $a =5".

Un autre bon exemple orienté expression est l'incrémentation et la décrémentation avant et arrière. Les utilisateurs de PHP et de la plupart des autres langages doivent être familiers avec les symboles variable ++ et variable --. C'est-à-dire les opérateurs d'incrémentation et de décrémentation . En PHP/FI 2, l'instruction "$a++" n'a aucune valeur (pas une expression), vous ne pouvez donc pas lui attribuer de valeur ni l'utiliser d'une autre manière. PHP améliore les capacités d'incrémentation/décrémentation en les transformant en une expression similaire au langage C. En langage PHP et C, il existe deux types d'incrément, le pré-incrément et le post-incrément. Essentiellement, le pré-incrément et le post-incrément augmentent la valeur de la variable et ont le même impact sur la variable. La différence est que la valeur de l'expression est incrémentée. Le pré-incrément, écrit "++$variable", trouve la valeur après l'incrément (PHP incrémente la valeur de la variable avant de lire la valeur de la variable, c'est pourquoi on l'appelle "pré-incrément"). Le post-incrément, écrit "$variable++", trouve la valeur d'origine de la variable avant qu'elle ne soit incrémentée (PHP incrémente la valeur de la variable après avoir lu la valeur de la variable, c'est pourquoi on l'appelle "post-incrément").

Un type d'expression couramment utilisé est une expression de comparaison. Ces expressions sont évaluées à FALSE ou TRUE . PHP prend en charge > (supérieur à), >= (supérieur ou égal à), == (égal à), != (différent de), < à). PHP prend également en charge l'opérateur d'égalité === (les valeurs et les types sont les mêmes) et l'opérateur de non-identité !== (les valeurs ou les types sont différents). Ces expressions sont le plus souvent utilisées dans les déclarations de jugement conditionnelles, telles que les déclarations if.

这里,将要研究的最后一个例子是组合的运算赋值表达式。已经知道如果想要为变量 $a 加1,可以简单的写“$a++”或者“++$a”。但是如果想为变量增加大于 1 的值,比如 3,该怎么做?可以多次写“$a++”,但这样明显不是一种高效舒适的方法,一个更加通用的做法是“$a = $a + 3”。“$a + 3”计算 $a 加上 3 的值,并且得到的值重新赋予变量 $a,于是 $a 的值增加了3。在 PHP 及其它几种类似 C 的语言中,可以以一种更加简短的形式完成上述功能,因而也更加清楚快捷。为 $a 的当前值加 3,可以这样写:“$a += 3”。这里的意思是“取变量 $a 的值,加 3,得到的结果再次分配给变量 $a”。除了更简略和清楚外,也可以更快的运行。“$a += 3”的值,如同一个正常赋值操作的值,是赋值后的值。注意它不是 3,而是 $a 的值加上3 之后的值(此值将被赋给 $a)。任何二元运算符都可以用运算赋值模式,例如“$a -= 5”(从变量 $a 的值中减去 5),“$b *= 7”(变量 $b 乘以 7),等等。

还有一个表达式,如果没有在别的语言中看到过的话,可能看上去很奇怪,即三元条件运算符:

$first ? $second : $third

如果第一个子表达式的值是 TRUE (非零),那么计算第二个子表达式的值,其值即为整个表达式的值。否则,将是第三个子表达式的值。

下面的例子一般来说应该有助于理解前、后递增和表达式:

<?php
function  double ( $i )
{
    return  $i * 2 ;
}
$b  =  $a  =  5 ;         
$c  =  $a ++;           
$e  =  $d  = ++ $b ;      



$f  =  double ( $d ++);   
$g  =  double (++ $e );   
$h  =  $g  +=  10 ;       
?>

一些表达式可以被当成语句。这时,一条语句的形式是 'expr' ';',即一个表达式加一个分号结尾。在“$b=$a=5;”中,$a=5 是一个有效的表达式,但它本身不是一条语句。“$b=$a=5;”是一条有效的语句。

最后一件值得提起的事情就是表达式的真值。在许多事件中,大体上主要是在条件执行和循环中,不要专注于表达式中明确的值,反而要注意表达式的值是否是 TRUE 或者 FALSE 。常量 TRUE 和 FALSE (大小写无关)是两种可能的 Boolean 值。如果有必要,一个表达式将自动转换为 Boolean。参见类型强制转换一节。

PHP 提供了一套完整强大的表达式,而为它提供完整的文件资料已经超出了本手册的范围。上面的例子应该为你提供了一个好的关于什么是表达式和怎样构建一个有用的表达式的概念。在本手册的其余部分,我们将始终使用expr 来表示一个有效的 PHP 表达式。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn