Maison développement back-end tutoriel php Points de connaissances souvent confus en PHP

Points de connaissances souvent confus en PHP

Jun 07, 2018 am 11:37 AM

Cet article présente principalement les points de connaissances qui sont souvent confus en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

1. La différence entre echo et print

Les fonctions d'echo et d'impression en PHP sont fondamentalement les mêmes (sortie), mais il existe encore des différences subtiles entre les deux. Il n'y a pas de valeur de retour après la sortie d'écho, mais print a une valeur de retour et renvoie false lorsque son exécution échoue. Par conséquent, elle peut être utilisée comme une fonction normale. Par exemple, après avoir exécuté le code suivant, la valeur de la variable $r sera 1.

$r = print "Hello World";
Copier après la connexion

Cela signifie que print peut être utilisé dans certaines expressions complexes, mais echo ne le peut pas. Cependant, comme l'instruction echo ne nécessite le renvoi d'aucune valeur, l'instruction echo dans le code s'exécute légèrement plus rapidement que l'instruction print.

2. La différence entre include et require

Les fonctions de include() et require() sont fondamentalement les mêmes (include), mais il existe quelques différences dans Dans l'utilisation, include() est une fonction d'inclusion conditionnelle, tandis que require() est une fonction d'inclusion inconditionnelle. Par exemple, dans le code suivant, si la variable $a est vraie, le fichier a.php sera inclus :

if($a){   
include("a.php");   
}
Copier après la connexion

et require() est différent de include(), quelle que soit la valeur $ a prend, ce qui suit Le code inclura le fichier a.php dans le fichier :

if($a){   
require("a.php");   
}
Copier après la connexion

En termes de gestion des erreurs, utilisez l'instruction include. Si une erreur d'inclusion se produit, le programme ignorera l'inclusion. Bien que le message d'erreur soit affiché, le programme continuera à être mis en œuvre ! Mais require vous donnera une erreur fatale.

Bien sûr, nous pouvons aussi comprendre Qifen littéralement : require signifie une demande ou une exigence très forte.

3. Les instructions require_once() et include_once()

Je suis hors sujet, car elles ressemblent à de simples instructions require_once() et include_once() correspondant respectivement pour exiger () et inclure () les instructions. Les instructions require_once() et include_once() sont principalement utilisées lorsque plusieurs fichiers doivent être inclus, ce qui peut efficacement éviter les erreurs dans les définitions répétées de fonctions ou de variables causées par l'inclusion du même morceau de code.

4. La différence entre une chaîne vide ('') et NULL

Les chaînes vides et NULL en PHP sont toutes deux stockées avec une valeur de 0, mais leurs types sont pas la même chose. Vous pouvez essayer echo gettype(''); et echo gettype(NULL); et vous constaterez qu'ils impriment respectivement la chaîne et NULL. Bien sûr, 0 est également facile à confondre. ); Si vous imprimez le type, vous constaterez que le type de 0 est entier (entier). On peut voir que la chaîne (''), NULL et 0 sont des "valeurs égales" mais pas de types différents.

5. La différence entre isset et vide

Du sens littéral, on peut comprendre : vide c'est juger si une variable est "vide", tandis que isset l'est pour juger si une variable a été définie. Mais il y a une chose à laquelle vous devez faire attention ici : lorsque la valeur d'une variable est 0, vide considère la variable comme égale à vide, c'est-à-dire qu'elle équivaut à aucun paramètre. Par exemple, lorsque nous détectons la variable $id, lorsque $id=0, nous utilisons vide et isset pour détecter si la variable $id a été configurée. Les deux renverront des valeurs différentes : vide pense qu'elle n'est pas configurée et isset peut obtenir. la valeur de $id. , regardez l'exemple ci-dessous :

$id=0;   
empty($id)?print "我是空的":print "我是$id ."; //结果:我是空的   
!isset($id)?print "我是空的":print "我是$id .";//结果:我是0
Copier après la connexion

6 La différence entre == (égal) et === (égal)

<🎜. >Regardez le quatrième caractère nul ci-dessus La différence entre la chaîne ("") et NULL, regardons un autre exemple :

&#39;&#39; == NULL;   
&#39;&#39; === NULL;
Copier après la connexion
Après l'avoir exécuté, vous constaterez que le premier est vrai et le second un est faux ! On peut voir que == compare uniquement si les valeurs sont égales, tandis que === compare non seulement les valeurs, mais compare également les types, ce qui est plus strict.

7.self :: La différence entre this->

Lors de l'accès à des variables ou méthodes membres dans une classe PHP, si la variable ou la méthode référencée est Si elle est déclarée comme const (définissant des constantes) ou static (déclarant static), alors l'opérateur :: doit être utilisé. Au contraire, si la variable ou la méthode référencée n'est pas déclarée comme const ou static, alors l'opérateur -> utilisé.

De plus, si vous accédez à une variable ou une méthode const ou statique depuis la classe, vous devez utiliser l'auto-référence. Au contraire, si vous accédez à une variable ou une méthode non const ou statique depuis la classe. classe, vous devez utiliser self-référentiel $this.

8. La différence entre strstr() et strpos()

stristr() n'est pas sensible à la casse strstr() est sensible à la casse

Recherche de fonction La première occurrence d'une chaîne dans une autre chaîne.

En cas de succès, renvoie le reste de la chaîne (à partir du point de correspondance). Si la chaîne n'est pas trouvée, renvoie false.

stripos() insensible à la casse strpos() sensible à la casse

La fonction renvoie la position de la première occurrence d'une chaîne dans une autre chaîne.

Renvoie false si la chaîne n'est pas trouvée.

Des tests ont prouvé que si vous recherchez simplement pour déterminer s'il existe, l'efficacité d'exécution de strpos() est supérieure à strstr()

9 HTTP_HOST et SERVER_NAME en PHP<.>

Mêmes points :

Lorsque les trois conditions suivantes sont remplies, les deux afficheront les mêmes informations.

1. Le serveur est le port 80

2. Le nom du serveur dans la configuration d'Apache est correctement défini

3. > est différent Points :

1. Situation normale :

_SERVER["HTTP_HOST"] Selon la spécification du protocole HTTP/1.1, les informations seront affichées en fonction de la requête HTTP du client.

_SERVER["SERVER_NAME"] par défaut affiche directement la valeur ServerName dans le fichier de configuration d'Apache httpd.conf.

2. Lorsque le serveur est sur un port non-80 :

_SERVER["HTTP_HOST"] affichera le numéro de port, par exemple : mimiz.cn:8080

_SERVER["SERVER_NAME" "] affichera directement la valeur ServerName

, donc dans ce cas, cela peut être compris comme : HTTP_HOST = SERVER_NAME : SERVER_PORT

3. Lorsque le ServerName dans la configuration le fichier httpd.conf est le même que HTTP/1.0 Lorsque le nom de domaine demandé est incohérent :

httpd.conf est configuré comme suit :

ServerName mimiz.cn

ServerAlias ​​www.mimiz.cn

Nom de domaine d'accès client www.mimiz.cn

_SERVER["HTTP_HOST"] sortie www.mimiz.cn

_SERVER["SERVER_NAME "] sortie mimiz.cn

Donc, dans le programme actuel, vous devriez essayer d'utiliser _SERVER["HTTP_HOST"], qui est plus sûr et plus fiable.

Si vous utilisez le mappage de ports et accédez depuis l'intranet, il est préférable d'utiliser "$_SERVER['HTTP_X_FORWARDED_HOST']".

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

PHP implémente la fonction de vote d'humeur

Plusieurs façons de vider le cache en PHP

PHP implémente un site Web d'achat multifonctionnel

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP Logging: meilleures pratiques pour l&amp;#39;analyse du journal PHP PHP Logging: meilleures pratiques pour l&amp;#39;analyse du journal PHP Mar 10, 2025 pm 02:32 PM

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d&amp;#39;exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Mar 28, 2025 pm 05:12 PM

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

See all articles