2009-07-23 7 views
0

Qu'est-ce qui s'exécute plus vite?PHP plus efficace si structure

Définition d'une valeur par défaut et it- changer

 
    $foo = ""; 
    if($bar) 
    { 
     $foo = "someValue"; 
    } 

Or-

 
    if($bar) 
    { 
     $foo = "someValue"; 
    } 
    else 
    { 
     $foo = ""; 
    } 

Répondre

6

Vous devriez absolument pas être dérangé par la performance d'une seule instruction if

, Voir également:

$foo = $bar ? "" : "someValue" 
+0

Je suppose qu'il a beaucoup de déclarations if .. sinon oui, il n'y a pas de motivation pour se soucier de seulement 1 déclaration – Strae

+1

@DaNieL S'il a un gazillion de déclarations «if», c'est clairement une odeur de code. Sinon, ce n'est pas ce dont il devrait s'inquiéter. –

1

A une supposition, le 2ème "potentiellement". Le premier vous définissez potentiellement 2 valeurs. Deuxièmement, vous n'en définissez qu'un.

C'est aussi une question de clarté du code. Si vous avez 2 alternatives (par exemple tourner à gauche ou à droite), utilisez l'instruction "else". Si vous avez une valeur « normale » vs un drapeau par exemple http ou https, puis utilisez la première

1

EDIT: déclaration becose vous valorisons une variable dans la base à l'autre, le isset() est obligatoire .. donc le 'plus rapide' est la deuxième façon de devenir, comme David l'a dit, de valoriser le var $ foo juste une fois.

Voir également la suggestion Anton utiliser court si la syntaxe (ne sais pas si elle accélérer l'exécution)

Ps: si votre objectif est d'accélérer beaucoup si comme celui-là, utilisez le 'au lieu de " , becose le contenu à l'intérieur « » est en cours evalutated par php (dans le cas où il contient une variable:.

+0

n'est pas vrai pour les deux cas? –

+0

Non, dans le premier cas, il attribue la valeur de $ foo avant l'instruction if;) – Strae

+0

Sans affecter la variable 'valeur par défaut' avant l'instruction if, l'utilisation de la fonction isset() ralentira (relativement) l'exécution – Strae

Questions connexes