Qu'est-ce que c'est?
Ceci est une collection de questions qui se posent de temps en temps sur la syntaxe en PHP. Il s'agit également d'un wiki communautaire, donc tout le monde est invité à participer au maintien de cette liste.
Pourquoi est-ce?
Auparavant, il était difficile de trouver des questions sur les opérateurs et autres jetons de syntaxe.¹
L'idée principale est d'avoir des liens vers des questions existantes sur Stack Overflow, il est donc plus facile pour nous de les référencer, de ne pas copier le contenu du manuel PHP.
Remarque: depuis janvier 2013, Stack Overflow prend en charge les caractères spéciaux . Entourez simplement les termes de recherche de guillemets, par exemple[php] "==" vs "==="
Que dois-je faire ici?
Si vous avez été pointé ici par quelqu'un parce que vous avez posé une telle question, veuillez trouver la syntaxe particulière ci-dessous. Les pages liées au manuel PHP ainsi que les questions liées répondront probablement à votre question. Si c'est le cas, vous êtes encouragé à voter pour la réponse. Cette liste n'est pas destinée à remplacer l'aide fournie par d'autres.
La liste
Si votre jeton particulier n'est pas répertorié ci-dessous, vous le trouverez peut-être dans la liste des jetons de l'analyseur .
&
Opérateurs ou références au niveau du bit
- Que signifie démarrer une fonction PHP avec une esperluette?
- Comprendre PHP & (esperluette, bit à bit et) opérateur
- Opérateur PHP "&"
- Différence entre & et && en PHP
- Que signifie "&" ici en PHP?
- Que signifie «&» dans ce cas?
- Que signifie le signe "&" en PHP?
- Que signifie cette signature (&) en PHP?
- Comment fonctionne l'opérateur "&" dans une fonction PHP?
- Que signifie & in & 2 en PHP?
- Quand dois-je utiliser un opérateur au niveau du bit?
- Est-il jamais nécessaire d'utiliser une esperluette devant un objet? (& $)
=&
Références
- Opérateur d'affectation de référence en PHP, = &
- Que signifient les opérateurs "= &" et "& =" en PHP?
- Que font les opérateurs '& =' et '= &'?
- Que signifie = & en PHP?
&=
Opérateurs au niveau du bit
- 'AND' vs '&&' comme opérateur
- Différence entre & et && en PHP
- Y a-t-il une différence entre les opérateurs "et" et "&&" en PHP?
- PHP - et / ou mots clés
- Que signifie le signe pourcentage en PHP?
- Qu'est-ce que l'opérateur PHP% et comment l'utiliser dans des exemples réels?
@
Opérateurs de contrôle d'erreur
- À quoi sert le symbole @ en PHP?
- Symbole 'At' avant le nom de la variable en PHP: @ $ _ POST
- Fonctions PHP et @functions
- Dois-je utiliser @ dans mon code PHP?
- Que signifie @ en PHP?
- Quels sont les opérateurs PHP "?" et ":" appelé et que font-ils?
- ?: opérateur («l'opérateur Elvis») en PHP
- Où puis-je lire sur les conditions effectuées avec "?" et ":" (deux points)?
- Utiliser PHP 5.3?: Opérateur
??
Opérateur Null Coalesce (depuis PHP 7)
?string
?int
?array
?bool
?float
Déclaration de type de retour nul (depuis PHP 7.1)
:
Syntaxe alternative pour les structures de contrôle , opérateur ternaire
::
Opérateur de résolution de portée
- Que signifient deux deux-points en PHP?
- Quelle est la signification du nom de jeton PHP T_PAAMAYIM_NEKUDOTAYIM?
- Quelle est la différence entre :: (double colon) et -> (flèche) en PHP?
- Que sont exactement les liaisons statiques tardives en PHP?
- static :: staticFunctionName ()
- T_PAAMAYIM_NEKUDOTAYIM inattendu, attend T_NS_Separator
- Barre oblique inverse en PHP - qu'est-ce que cela signifie?
- Que fait un \ (barre oblique inverse) en PHP (5.3+)?
- Comment s'appelle l'opérateur PHP "->" et comment le dites-vous lorsque vous lisez du code à haute voix?
- Où utilisons-nous l'opérateur d'objet "->" en PHP?
- Quelle est la différence entre :: (double colon) et -> (flèche) en PHP?
- Que signifie la syntaxe PHP $ var1 -> $ var2?
- Que signifie "->" en PHP?
=>
Tableaux
- Que signifie "=>" en PHP?
- Utilisation de => en PHP
- Que signifie $ k => $ v dans foreach ($ ex as $ k => $ v)?
>>
Opérateurs au niveau du bit
<<
Opérateurs au niveau du bit
- Que signifie <<< END en PHP?
- Expression PHP <<< EOB
- En PHP, que représente "<<<"?
- Utilisation de <<< CON en PHP
- Quel est ce type de syntaxe en PHP?
- En quoi les opérateurs de comparaison d'égalité PHP (== double égal) et d'identité (=== triple égal) diffèrent-ils?
- Opérateurs PHP! = Et ==
- Les 3 égaux différents
- Jonglage de type et comparaisons (strictes) supérieures / inférieures à PHP
- Que signifie "==="?
- En quoi les opérateurs de comparaison d'égalité PHP (== double égal) et d'identité (=== triple égal) diffèrent-ils?
- Les 3 égaux différents
- Jonglage de type et comparaisons (strictes) supérieures / inférieures à PHP
- Opérateurs PHP! = Et ==
- Y a-t-il une différence entre! == et! = En PHP?
- comparaison,! == contre! =
- Quelle est la différence entre <> et! =
- Opérateur PHP <>
- Opérateur <> de PHP
- Quelle est la différence entre <> et! =
- Jonglage de type et comparaisons (strictes) supérieures / inférieures à PHP
<=>
Opérateurs de comparaison (depuis PHP 7.0)
- Quelle est la différence entre le | et || les opérateurs?
- Qu'est-ce que l'utilisation d'un seul tuyau '|' Dans un argument de fonction faire?
- Quelle est la différence entre le | et || les opérateurs?
- PHP - et / ou mots clés
- Que fait exactement || signifier?
- Le comportement de l'opérateur or en PHP
+
Opérateurs arithmétiques , Opérateurs de tableaux
+=
et -=
opérateurs d'affectation
++
et --
incrémentation / décrémentation des opérateurs
- Différence entre la période et la virgule lors de la concaténation de l'écho et du retour?
- Qu'est-ce qu'un . (dot) faire en PHP?
- Que signifie $$ (dollar dollar ou double dollar) en PHP?
- qu'est-ce que "$$" en PHP
- $ function () et $$ variable
[]
Tableaux (syntaxe courte depuis PHP 5.4)
- Tableaux PHP ... Quelle est / sont la (les) signification (s) d'une parenthèse vide?
- Quel est le sens de []
- Php array_push () vs myArray []
- Que signifie [] lors de la lecture à partir d'un tableau PHP?
- Raccourci pour les tableaux:
$var = []
tableau vide littéral
<?
Ouverture et fermeture des balises
...
Déballage des arguments (depuis PHP 5.6)
**
Exponentiation (depuis PHP 5.6)
#
Commentaire de style shell sur une ligne
?->
Appels d'opérateur NullSafe
/**
?$
variables, mais$$
uniquement sur les variables variables. Je pense que cela devrait être modifié quelque part.Réponses:
Opérateurs d'incrémentation / décrémentation
++
opérateur d'incrémentation--
opérateur de décrémentationCeux-ci peuvent aller avant ou après la variable.
Si mis avant la variable, l'opération d' incrément / décrément est fait à la variable première alors le résultat est retourné. Si elle est placée après la variable, la variable est d' abord renvoyée, puis l'opération d'incrémentation / décrémentation est effectuée.
Par exemple:
Exemple en direct
Dans le cas ci
++$i
- dessus est utilisé, car il est plus rapide.$i++
aurait les mêmes résultats.La pré-incrémentation est un peu plus rapide car elle incrémente vraiment la variable et ensuite «retourne» le résultat. Le post-incrément crée une variable spéciale, y copie la valeur de la première variable et seulement après que la première variable est utilisée, remplace sa valeur par la seconde.
Cependant, vous devez utiliser
$apples--
, car vous voulez d'abord afficher le nombre actuel de pommes, puis vous en soustraire une.Vous pouvez également incrémenter des lettres en PHP:
Une fois
z
atteint,aa
c'est le suivant, et ainsi de suite.Poteaux de débordement de pile:
la source
Opérateur au niveau du bit
Qu'est-ce qu'un peu? Un bit est une représentation de 1 ou 0. Fondamentalement OFF (0) et ON (1)
Qu'est-ce qu'un octet? Un octet est composé de 8 bits et la valeur la plus élevée d'un octet est 255, ce qui signifie que chaque bit est défini. Nous verrons pourquoi la valeur maximale d'un octet est 255.
Cette représentation de 1 octet
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 octet)
Quelques exemples pour une meilleure compréhension
L'opérateur "ET":
&
Cela donnerait le chiffre 8. Pourquoi? Voyons voir en utilisant notre exemple de table.
Ainsi, vous pouvez voir dans le tableau que le seul bit qu'ils partagent ensemble est le 8 bits.
Deuxième exemple
Les deux bits partagés sont 32 et 4, qui, lorsqu'ils sont additionnés, renvoient 36.
L'opérateur "Ou":
|
Cela donnerait le nombre 11. Pourquoi?
Vous remarquerez que nous avons défini 3 bits, dans les colonnes 8, 2 et 1. Additionnez-les: 8 + 2 + 1 = 11.
la source
and &
est0 0 0 0 1 0 0 0
etor |
est0 0 0 0 1 0 1 1
?<=>
Opérateur de vaisseau spatialAjouté en PHP 7
L' opérateur de vaisseau spatial
<=>
est le dernier opérateur de comparaison ajouté en PHP 7. Il est un non-associatif opérateur binaire avec la même priorité que les opérateurs d'égalité (==
,!=
,===
,!==
). Cet opérateur permet une comparaison à trois voies plus simple entre les opérandes de gauche et de droite.L'opérateur donne une expression entière de:
0
lorsque les deux opérandes sont égaux0
lorsque l'opérande de gauche est inférieur à l'opérande de droite0
lorsque l'opérande de gauche est supérieur à l'opérande de droitepar exemple
Une bonne application pratique de l'utilisation de cet opérateur serait dans les rappels de type comparaison qui devraient renvoyer un zéro, un négatif ou un entier positif sur la base d'une comparaison à trois entre deux valeurs. La fonction de comparaison est passée à
usort
est un tel exemple.Avant PHP 7, vous écriviez ...
Depuis PHP 7, vous pouvez écrire ...
la source
$a <=> $b
est différent de$a - $b
$a - $b
fonctionne pour les nombres, mais pas pour les chaînes, les objets ou les tableaux.$a - $b
ne fonctionne même pas pour les chiffres; cela ne fonctionne que pour les entiers . Cela ne fonctionne pas pour les nombres non entiers, carusort
convertit les valeurs de retour de votre fonction de comparaison enint
, ce qui signifie que 0,5 est converti en 0, ce qui signifie que deux nombres avec une différence inférieure à 1, tels que 4 et 4,6, peuvent (selon sur lequel on est passé comme premier argument à votre fonction de comparaison) comparer incorrectement comme égal._
Alias pour gettext ()Le caractère de soulignement «_» comme dans
_()
est un alias de lagettext()
fonction.la source
la source
Constantes magiques : bien que ce ne soient pas seulement des symboles mais une partie importante de cette famille de jetons. Il y a huit constantes magiques qui changent selon l'endroit où elles sont utilisées.
__LINE__
: Le numéro de ligne actuel du fichier.__FILE__
: Le chemin complet et le nom de fichier du fichier. S'il est utilisé dans une inclusion, le nom du fichier inclus est renvoyé. Depuis PHP 4.0.2,__FILE__
contient toujours un chemin absolu avec des liens symboliques résolus alors que dans les anciennes versions, il contenait un chemin relatif dans certaines circonstances.__DIR__
: Le répertoire du fichier. S'il est utilisé dans une inclusion, le répertoire du fichier inclus est renvoyé. C'est équivalent àdirname(__FILE__)
. Ce nom de répertoire n'a pas de barre oblique de fin sauf s'il s'agit du répertoire racine. (Ajouté en PHP 5.3.0.)__FUNCTION__
: Le nom de la fonction. (Ajouté en PHP 4.3.0) Depuis PHP 5, cette constante renvoie le nom de la fonction tel qu'il a été déclaré (sensible à la casse). En PHP 4, sa valeur est toujours en minuscules.__CLASS__
: Le nom de la classe. (Ajouté en PHP 4.3.0) Depuis PHP 5, cette constante renvoie le nom de classe tel qu'il a été déclaré (sensible à la casse). En PHP 4, sa valeur est toujours en minuscules. Le nom de classe inclut l'espace de noms dans lequel il a été déclaré (par exempleFoo\Bar
). Notez que depuis PHP 5.4__CLASS__
fonctionne également dans les traits. Lorsqu'il est utilisé dans une méthode de trait,__CLASS__
est le nom de la classe dans laquelle le trait est utilisé.__TRAIT__
: Le nom du trait. (Ajouté en PHP 5.4.0) Depuis PHP 5.4, cette constante renvoie le trait tel qu'il a été déclaré (sensible à la casse). Le nom de trait inclut l'espace de noms dans lequel il a été déclaré (par exempleFoo\Bar
).__METHOD__
: Le nom de la méthode de classe. (Ajouté en PHP 5.0.0) Le nom de la méthode est retourné tel qu'il a été déclaré (sensible à la casse).__NAMESPACE__
: Le nom de l'espace de noms actuel (sensible à la casse). Cette constante est définie au moment de la compilation (ajoutée en PHP 5.3.0).La source
la source
Opérateurs de type
instanceof
est utilisé pour déterminer si une variable PHP est un objet instancié d'une certaine classe.L'exemple ci-dessus affichera:
Motif: exemple ci - dessus
$a
est un objet de l'mclass
utiliser de manière seulementmclass
données et non une instance desclass
Exemple avec héritage
L'exemple ci-dessus affichera:
Exemple avec clone
L'exemple ci-dessus affichera:
la source
Un aperçu des opérateurs en PHP :
Opérateurs logiques:
Opérateurs de comparaison:
Opérateurs arithmétiques:
Opérateurs d'incrémentation / décrémentation:
Opérateurs au niveau du bit:
Opérateurs de chaîne:
Opérateurs de baies:
Opérateurs d'affectation:
Remarque
and
l'opérateur et l'or
opérateur ont une priorité plus faible que l'opérateur d'affectation=
.Cela signifie que cela
$a = true and false;
équivaut à($a = true) and false
.Dans la plupart des cas, vous voudrez probablement utiliser
&&
et||
, qui se comportent d'une manière connue à partir de langages comme C, Java ou JavaScript.la source
$a ?? $c
, il dit que c'est la même chose$a ? $a : $c
, mais l'opérateur ternaire vérifie si la valeur est vraie, d'autre part, la coalescence nulle vérifie les valeurs nulles, donc, si $ a est 0, vous obtiendrez 0 (car 0 est non nul), par exemple si vous avez:$a=0; $c=5;
puis$a?$a:$c
retourne 5, et$a??$c
renvoie 0.Opérateur de vaisseau spatial
<=>
(ajouté en PHP 7)Exemples d'
<=>
opérateur de vaisseau spatial (PHP 7, Source: PHP Manual):Entiers, flottants, chaînes, tableaux et objets pour la comparaison à trois des variables.
la source
{}
AccoladesEt quelques mots sur le dernier message
la source
Opérateur coalescent nul (??)
Cet opérateur a été ajouté en PHP 7.0 pour le cas courant de besoin d'utiliser un opérateur ternaire en conjonction avec
isset()
. Il retourne son premier opérande s'il existe et n'est pasNULL
; sinon, elle renvoie son deuxième opérande.la source
Chaînes PHP: les chaînes PHP peuvent être spécifiées de quatre manières et non seulement de deux façons:
1) Chaînes de guillemets simples:
2) Chaînes de guillemets doubles:
3) Hérédoc:
4) Nowdoc (depuis PHP 5.3.0):
la source
QUESTION:
Que veut
=>
dire?RÉPONSE:
=>
Est le symbole que nous, les humains, avons décidé d'utiliser pour séparer les"Key" => "Value"
paires dans les tableaux associatifs.ELABORATION:
Pour comprendre cela, nous devons savoir ce que sont les tableaux associatifs. La première chose qui arrive quand un programmeur conventionnel pense à un tableau ( en PHP ) serait quelque chose de similaire à:
Alors que, si nous voulions appeler le tableau dans une partie ultérieure du code, nous pourrions faire:
Jusqu'ici tout va bien. Cependant, en tant qu'êtres humains, nous pourrions avoir du mal à nous rappeler que l'indice
[0]
du tableau est la valeur de l' année 2016, l'indice[1]
du tableau est une salutation et l'indice[2]
du tableau est une simple valeur entière . L'alternative que nous aurions alors serait d'utiliser ce qu'on appelle un tableau associatif . Un tableau associatif présente quelques différences par rapport à un tableau séquentiel ( ce qui était le cas dans la mesure où il incrémente l'index utilisé dans une séquence prédéterminée, en incrémentant de 1 pour chaque valeur suivante ).Différences ( entre un tableau séquentiel et associatif ):
En brouillant la déclaration d'un tableau associatif, vous incluez non seulement le
value
de ce que vous voulez mettre dans le tableau, mais vous mettez également la valeur d'index (appelée lekey
) que vous souhaitez utiliser lors de l'appel du tableau dans les parties ultérieures du tableau. code. La syntaxe suivante est utilisée lors de la déclaration de ce:"key" => "value"
.Lors de l'utilisation du tableau associatif, la
key
valeur serait alors placée à l'intérieur de l'index du tableau pour récupérer le souhaitévalue
.Par exemple:
Et maintenant, pour recevoir la même sortie qu'auparavant, la
key
valeur serait utilisée dans l'index des tableaux:POINT FINAL:
Ainsi, à partir de l'exemple ci-dessus, il est assez facile de voir que le
=>
symbole est utilisé pour exprimer la relation d'un tableau associatif entre chacune des paireskey
etvalue
dans un tableau PENDANT l'initiation des valeurs dans le tableau.la source
Question :
Que signifie "&" ici en PHP?
Opérateur PHP "&"
Rend la vie plus facile une fois que nous nous y sommes habitués .. (consultez attentivement l'exemple ci-dessous)
& vérifie généralement que les bits définis dans $ a et $ b sont définis.
Donc, derrière tout ce qui précède se trouve un jeu d'opérateurs et de bits au niveau du bit.
Un exemple utile de ces configurations simples est comme donner ci-dessous, donc un seul champ entier peut stocker des milliers de combos pour vous.
La plupart des gens ont déjà lu les documents mais n'ont pas reliacé le cas d'utilisation réel de ces opérateurs au niveau du bit.
Exemple que vous allez adorer
la source
==
est utilisé pour vérifier l'égalité sans tenir compte du type de données variable===
est utilisé pour l' égalité de contrôle pour les deux la variable valeur et de type de donnéesExemple
$a = 5
if ($a == 5)
- évaluera à vraiif ($a == '5')
- sera évalué à vrai, car en comparant ces deux valeurs, PHP convertit en interne cette valeur de chaîne en entier, puis compare les deux valeursif ($a === 5)
- évaluera à vraiif ($a === '5')
- sera évalué à faux, car la valeur est 5, mais cette valeur 5 n'est pas un entier.la source
Opérateur Coalesce nul "??" (Ajouté en PHP 7)
Ce n'est pas le nom le plus accrocheur pour un opérateur, mais PHP 7 apporte la fusion nulle plutôt pratique, alors j'ai pensé partager un exemple.
En PHP 5, nous avons déjà un opérateur ternaire, qui teste une valeur, puis retourne le deuxième élément si cela retourne vrai et le troisième si ce n'est pas le cas:
Il y a aussi un raccourci pour cela qui vous permet de sauter le deuxième élément s'il est le même que le premier: echo $ count?: 10; // affiche également 10
En PHP 7, nous obtenons en outre le ?? opérateur qui, plutôt que d'indiquer une confusion extrême, c'est ainsi que j'utiliserais habituellement deux points d'interrogation ensemble, nous permet de chaîner une chaîne de valeurs. En lisant de gauche à droite, la première valeur qui existe et qui n'est pas nulle est la valeur qui sera retournée.
Cette construction est utile pour donner la priorité à une ou plusieurs valeurs provenant peut-être d'une entrée utilisateur ou d'une configuration existante, et retomber en toute sécurité sur une valeur par défaut donnée si cette configuration est manquante. C'est une sorte de petite fonctionnalité mais c'est une que je sais que j'utiliserai dès que mes applications passeront à PHP 7.
la source
Déclaration de type de retour nul
PHP 7 ajoute la prise en charge des déclarations de type de retour. De la même manière que les déclarations de type d'argument, les déclarations de type de retour spécifient le type de valeur qui sera renvoyé par une fonction. Les mêmes types sont disponibles pour les déclarations de type de retour que ceux disponibles pour les déclarations de type d'argument.
Une frappe stricte a également un effet sur les déclarations de type de retour. Dans le mode faible par défaut, les valeurs renvoyées seront contraintes au type correct si elles ne sont pas déjà de ce type. En mode fort, la valeur retournée doit être du type correct, sinon, une TypeError sera levée.
Depuis PHP 7.1.0, les valeurs de retour peuvent être marquées comme nullables en préfixant le nom du type avec un point d'interrogation (?). Cela signifie que la fonction retourne le type spécifié ou NULL.
La source
la source
Trois DOTS en tant qu'opérateur Splat (...) (depuis PHP 5.6)
PHP a un opérateur "..." (Trois points) qui est appelé Opérateur Splat. Il est utilisé pour passer un nombre arbitraire de paramètres dans une fonction et ce type de fonction est appelé Fonctions Variadiques. Prenons des exemples d'utilisation de "..." (trois points).
Chaque argument de la fonction CalculateNumbers () passe par $ params en tant que tableau lors de l'utilisation de "…".
Il existe de nombreuses façons d'utiliser l'opérateur "…". Ci-dessous quelques exemples:
la source
? -> Opérateur NullSafe
Pour l'instant, ce n'est qu'une proposition, vous pouvez la trouver ici . C'est le
NullSafe Operator
, il revientnull
si vous essayez d'appeler des fonctions ou d'obtenir des valeurs denull
... Exemplela source
Opérateur NullSafe "? ->" (éventuellement) depuis php8
Pour le moment, c'est juste une proposition, vous pouvez la trouver en entrant la description du lien ici .
?->
c'est leNullSafe Operator
, il revientnull
si vous essayez d'appeler des fonctions ou d'obtenir des valeurs denull
...Exemples:
la source