Maison > développement back-end > tutoriel php > Partager quelques connaissances et expériences sur PHP

Partager quelques connaissances et expériences sur PHP

零到壹度
Libérer: 2023-03-23 21:38:01
original
1343 Les gens l'ont consulté

Le contenu de cet article est de partager des connaissances et des expériences sur les entretiens PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

  • .

    Partage de ressources inter-domaines CORS (cross origin Resource Sharing), qui permet des requêtes de ressources inter-sites. Le client doit utiliser une méthode spécifique pour demander des ressources (telle que xmlhttprequest) et doit apporter des informations d'en-tête spécifiques. Le serveur doit également prendre en charge les demandes de ressources inter-domaines

memcache et redis. et différences

  • memcache peut profiter du multithreading, d'un débit élevé, adapté aux grandes visites

  • memcache ne prend en charge qu'une structure clé/valeur simple

  • memcache ne peut pas conserver les données et ne peut pas être sauvegardé. Il ne peut être utilisé que pour la mise en cache. Les données seront perdues après le redémarrage

  • Parce que. memcache prend en charge plusieurs opérations Thread, donc le problème de la cohérence des données doit être pris en compte, et le verrouillage optimiste cas (vérifier et définir) est utilisé

  • Étant donné que redis est de forme unique, il peut garantir que ordre des opérations

  • Redis prend en charge une variété de structures de données, clé/valeur, liste, ensemble, zset, dict, etc.

  • Redis les données peuvent être stockées de manière persistante. Stockez les données sur le disque et pouvez les lire lors du redémarrage

  • redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode maître-esclave

Solution à haute concurrence pour les projets Web

  • HTML statique, utilisation statique de données couramment utilisées mais rarement mises à jour

  • Séparation du serveur d'images à éviter Affecte le serveur d'applications et peut effectuer une optimisation de configuration individuelle, des paramètres de cache, etc. pour le serveur d'images

  • Cluster de base de données, hachage de table de bibliothèque

    • Le cluster de base de données peut réaliser une séparation en lecture et en écriture et améliorer la vitesse de réponse de la base de données. Il s'agit généralement d'un maître et de plusieurs esclaves, ou d'un maître x et d'un esclave y. Par exemple, lors de l'écriture de moins et de la lecture de plus, un serveur est dédié aux opérations d'écriture et d'autres serveurs sont utilisés pour les opérations de lecture, ce qui peut éviter l'impact des verrous en lecture-écriture. Cependant, une fois l'opération d'écriture terminée, les données doivent être synchronisées.

    • Un autre avantage d'un cluster de bases de données est que lorsqu'un serveur de base de données tombe en panne, il y aura toujours des données complètes sur d'autres serveurs

    • Dans un base de données distribuée, il existe plusieurs nœuds dans le système et chaque nœud remplit des fonctions différentes. Si un nœud meurt, la fonction correspondante ne peut pas être complétée.

    • La différence entre un cluster de bases de données et une base de données distribuée. Supposons qu’une tâche prenne une heure sur un nœud et qu’il existe désormais 10 tâches de ce type et 10 nœuds. La base de données distribuée peut diviser la tâche en 10 tâches. Chaque nœud effectue une tâche différente, quelles que soient les dépendances des sous-tâches. Toutes les tâches seront terminées au bout d'une heure. Chaque nœud du cluster de bases de données peut effectuer une tâche complète. Il peut effectuer en moyenne 10 tâches sur chaque nœud, de sorte que toutes les tâches soient terminées au bout d'une heure.

    • Optimisation SQL

    • S'il y a trop de données dans la table, vous pouvez envisager de diviser la table et d'utiliser le mappage de hachage

    • Optimisation de l'index

  • Cache

  • Miroir, utilisé pour améliorer la vitesse d'accès

  • Équilibrage de charge, résolvant les problèmes de concurrence élevée et d'accès massifs

  • CDN, permettant aux utilisateurs d'accéder au serveur cdn le plus proche et d'obtenir la réponse la plus rapide

  • Compression des données

PHP

Méthode magique

  • __set/__get gère les attributs qui n'existent pas dans la classe

  • __call/_callStatic est déclenché lors de l'appel d'une méthode/méthode statique qui n'existe pas dans la classe. __callStatic lui-même doit également être déclaré comme méthode statique

  • __toString pour convertir l'objet en chaîne et le sortir

  • __invoke pour exécuter l'objet en tant que fonction

La différence entre require et include

  • include function : lira le fichier spécifié et exécutera le programme à l'intérieur

    ;
  • fonction require : lira le contenu du fichier cible et se remplacera par ce contenu lu

  • fonction include_once : inclura et exécutera le fichier spécifié ; Ce comportement est similaire à l'instruction include, la seule différence est que si le fichier a déjà été inclus, il ne le sera plus. Comme le nom de cette instruction l'indique, elle ne sera incluse qu'une seule fois ;

  • fonction require_once : exactement la même chose que l'instruction require, la seule différence est que PHP vérifiera si le fichier a déjà été inclus et, si tel est le cas, ne le sera pas à nouveau.

  • Utiliser include_once ou require_once réduira l'efficacité du programme, car avant de charger le fichier, il recherchera d'abord si le fichier a été chargé dans la table des fichiers chargés

  • L'inclusion d'un fichier inexistant générera uniquement une alarme. Lorsque vous aurez besoin d'un fichier inexistant, une erreur fatale sera générée directement et le script s'arrêtera

  • include est une fonction d'inclusion conditionnelle, require est contient des fonctions de manière inconditionnelle. Autrement dit, s'il existe une condition if dans la couche externe de include ou require, lorsque if est faux, include n'inclura pas le fichier. Il n'inclura le fichier que lorsqu'il est vrai, et require inclura le fichier, que ce soit ou non. c'est vrai ou faux

Pourquoi ne pouvez-vous pas utiliser de parenthèses lors du retour ? Réduire l'efficacité

  • Si la valeur de retour ne fournit pas de paramètres, null sera renvoyé à ce moment-là, et les parenthèses ne doivent pas être incluses pour le moment. Si des parenthèses sont utilisées, cela provoquera une erreur d'analyse

  • Lors du retour d'une référence à une variable, les parenthèses ne doivent pas être utilisées. Sinon, cela deviendra la valeur de la référence renvoyée à la place de la référence elle-même

  • Mécanisme de variable PHP faiblement typé

  • fast_cgi

php_fpm

Différences entre php5 php7

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!

Étiquettes associées:
php
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal