2016-08-07 1 views
-1

Prenez cet exemple:Validité et utilisation = + en PHP

<?php 

$i = 1; 
$i += 2; 
$i =+ 5; 

echo $i; // 5 

Cela montre que =+ est un opérateur d'affectation. Pourtant, c'est très déroutant pour moi et pas du tout sémantique. J'ai passé des heures à déboguer quelque chose simplement parce que j'ai accidentellement utilisé =+ au lieu de +=. Le premier ne jette pas d'erreurs, cependant. Donc je suis curieux: quel est le cas d'utilisation pour =+. Quand auriez-vous (besoin de) l'utiliser sur un simple =?

Répondre

0

=+ est pas un seul opérateur. Ses deux: l'affectation (=) et le plus unaire (+).

Si vous insérez différents espaces, il obtient évident:

$i = +5; 

Le plus unaire en PHP est utilisé pour la conversion de $i à int ou float selon le cas. Depuis 5 est déjà un int, son identité dans ce cas, et l'expression entière est sémantiquement équivalent à:

$i = 5; 
3

=+ n'est pas un opérateur. Pensez-y comme

$i = +5; 

par opposition à

$i = -5; 
0

Comme vous l'avez mentionné + = est un opérateur d'affectation est correcte.

Dans votre cas:

$i = 1; 

Juste affecter la valeur 1-$i puis lorsque votre deuxième ligne exécuter $i += 2;, son juste ajouter la valeur 2 avec la valeur existante de $i.

Alors maintenant, lorsque vous utilisez $i =+ 5; dans votre troisième ligne, son réattribuer la $i variable avec la valeur positive +5.

Il n'y a pas de gros problème avec = + et + = ce sont différents.