2009-08-15 8 views
0

Je trouve ce code ci-dessous dans un script, j'essaie de savoir s'il est effectivement censé faire plus que je vois, autant que je peux dire qu'il en résulte un tableau de:Qu'est-ce que ce php est censé faire?

$ maxSize [0] avec new_width $
$ maxSize [1] avec source_width $

$maxSize = array($new_width ? $new_width : $source_width, $new_height ? $new_height : $source_height); 
+0

C'est censé vous dérouter. – Randell

+2

Ah, l'inline if - maintenant moins de lignes de code * et * moins de lisibilité – Steven

Répondre

3

Il utilise en ligne si des déclarations. Si $ new_width est défini, il utilisera cette valeur. Sinon, il vaut par défaut $ source_width. La même chose est vraie pour $ new_height. Et oui, vous obtenez un tableau à clé numérique avec deux valeurs.

0

Il crée un tableau avec deux éléments. Si $new_width est défini et supérieur à zéro, le premier élément sera $new_width. Sinon, ce sera $source_width. La même chose s'applique à ce dernier, juste avec la taille. Lisez ternary comparison operator pour plus d'informations.

2

Il en résulte un tableau avec 2 index. Mais il fait 2 vérifications de comparaison ternaire pour voir ce que ces index devraient égaler.

Pour le premier si $ new_width a une valeur, il utilisera l'autre, il utilisera $ source_width. Pour le second si $ new_height a une valeur, il utilisera l'autre $ source_height.

Cela peut être complété comme:

$maxSize = array(); 
if ($new_width) 
    $maxSize[] = $new_width; 
else 
    $maxSize[] = $source_width; 

if ($new_height) 
    $maxSize[] = $new_height; 
else 
    $maxSize[] = $source_height; 
0

Il crée un tableau avec deux éléments. Le premier élément définit la largeur. S'il existe un nouvel ensemble de largeur, la valeur par défaut est la largeur de la source. C'est la même chose avec le deuxième élément, en réglant la hauteur.

Questions connexes