


Comment utiliser les fonctions récursives en PHP pour accumuler des nombres
Quelles sont les méthodes pour implémenter une fonction récursive ? Comment ajouter des nombres à l'aide d'une fonction récursive ? Cet article présente principalement les trois méthodes d'implémentation de la fonction récursive php et comment implémenter l'accumulation numérique. Les amis dans le besoin peuvent s'y référer.
Les fonctions récursives sont un type de fonction couramment utilisé en programmation. Sa caractéristique est que la fonction elle-même peut s'appeler, mais elle doit avoir un jugement conditionnel avant de s'appeler, sinon elle provoquera appels infinis. Cet article répertorie trois méthodes d'implémentation de fonctions récursives. La première utilise pour référencer comme paramètres, la seconde utilise des variables globales et la troisième utilise des variables statiques . ce genre de problème C'est un peu basique, y compris une compréhension des variables globales, des références et des variables statiques, ainsi qu'une compréhension de leur portée. Plus de bêtises ici, veuillez voir ci-dessous pour une introduction détaillée.
La première méthode : utiliser des références comme paramètres
Que les références soient des paramètres ou non, vous devez d'abord comprendre ce qu'est une référence ? Une référence signifie simplement que deux variables portant des noms différents pointent vers la même adresse de stockage. À l'origine, chaque variable avait sa propre adresse de stockage, et l'affectation et la suppression se déroulaient selon leur propre chemin.
D'accord maintenant, les deux variables partagent une adresse de stockage. $a=&$b; . Ce que cela signifie en réalité, c'est que $a doit partager une chambre avec $b quelle que soit son adresse de stockage d'origine. Par conséquent, toute modification de la valeur de l'adresse stockée affectera les deux valeurs.
Les fonctions font à l'origine leur propre travail, même s'il s'agit de fonctions portant le même nom. Les fonctions récursives envisagent de prendre des références comme paramètres et de devenir un pont pour former un partage de données entre deux fonctions. Bien que les deux fonctions semblent fonctionner sur des adresses différentes, elles opèrent en réalité sur la même adresse mémoire.
Le code est le suivant :
function test($a=0,&$result=array()){ $a++; if ($a<10) { $result[]=$a; test($a,$result); } echo $a; return $result; }
L'exemple ci-dessus est très simple. Utilisez a comme condition de jugement. Si la condition est vraie, attribuez-la. a à result[] ; Passez la référence du résultat dans la fonction, et le a généré par chaque récursion sera ajouté au tableau de résultats result. Par conséquent, le tableau $result généré dans cet exemple est Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4 ] => 5 [5] => 6 [6] => 7 [7] =>
Ce qui est plus intéressant dans cet exemple, c'est la valeur de echo a . Je crois que beaucoup de gens pensent que c'est 12345678910, mais en réalité ce n'est pas le cas, c'est 1098765432. Pourquoi? Parce que la fonction a effectué la récursion de fonction suivante avant d'exécuter echo a.
L'exécution réelle de echo a se produit lorsque a les conditions ne sont pas remplies, echo a, renvoie résultat,Pour la couche supérieure, après avoir exécuté la fonction récursive, commencez à exécuter le echo $a de cette couche, et ainsi de suite.
Deuxième méthode : utilisez des variables globales
Utilisez des variables globales pour compléter des fonctions récursives. Veuillez vous assurer de bien comprendre ce que sont les variables globales . globalDéclarer des variables dans une fonction n'est rien de plus qu'une référence à une variable externe du même nom. La portée de la variable est toujours dans la portée de cette fonction. Changer les valeurs de ces variables modifiera naturellement les valeurs des variables externes du même nom. Mais une fois & utilisé, la variable du même nom n'est plus une référence du même nom. Il n'est pas nécessaire de comprendre un niveau aussi profond pour utiliser des variables globales pour implémenter des fonctions récursives. Vous pouvez comprendre les fonctions récursives naturellement en conservant la vue originale des variables globales.
Le code est le suivant :
function test($a=0,$result=array()){ global $result; $a++; if ($a<10) { $result[]=$a; test($a,$result); } return $result; }
La troisième méthode : utiliser des variables statiques
Nous Nous voyons souvent du static dans la classe. Aujourd'hui, nous l'utilisons dans les fonctions récursives. N'oubliez pas le rôle du statique : initialisez la variable uniquement la première fois que la fonction est appelée et conservez la valeur de la variable.
Par exemple :
Le code est le suivant :
function test(){ static $count=0; echo $count; $count++; } test(); test(); test(); test(); test();
J'aimerais savoir le résultat de l'exécution de ce code Combien ? Est-ce 00000 ? Certainement pas. Il s’agit du 01234. Tout d'abord, appelez test(), static pour la première fois pour initialiser $count Après chaque exécution, la valeur de $count sera conservée et ne le sera pas. être répété. L'initialisation équivaut à ignorer directement la phrase static $count=0;.
Par conséquent, l'effet de l'application de statique à une fonction récursive peut être imaginé. Utilisez static pour initialiser les variables qui doivent être utilisées comme "ponts" entre les fonctions récursives. Chaque récursion conservera la valeur de la "variable de pont".
Le code est le suivant :
function test($a=0){ static $result=array(); $a++; if ($a<10) { $result[]=$a; test($a); } return $result; }
Résumé
所谓递归函数,重点是如何处理函数调用自身是如何保证所需要的结果得以在函数间合理"传递",当然也有不需要函数之间传值得递归函数,例如:
代码如下:
function test($a=0){ $a++; if ($a<10) { echo $a; test($a); } }
下面通过一段代码演示一下php使用递归函数实现数字累加的方法。
代码如下所示:
代码如下:
<?php function summation ($count) { if ($count != 0) : return $count + summation($count-1); endif; } $sum = summation(10); print "Summation = $sum"; ?>
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!

Pour protéger l'application des attaques XSS liées à la session, les mesures suivantes sont nécessaires: 1. Définissez les drapeaux httponly et sécurisés pour protéger les cookies de session. 2. Codes d'exportation pour toutes les entrées utilisateur. 3. Implémentez la politique de sécurité du contenu (CSP) pour limiter les sources de script. Grâce à ces politiques, les attaques XSS liées à la session peuvent être protégées efficacement et les données utilisateur peuvent être assurées.

Les méthodes pour optimiser les performances de la session PHP incluent: 1. Delay Session Start, 2. Utilisez la base de données pour stocker les sessions, 3. Compress Session Data, 4. Gérer le cycle de vie de la session et 5. Implémenter le partage de session. Ces stratégies peuvent améliorer considérablement l'efficacité des applications dans des environnements de concurrence élevés.

Thesesse.gc_maxlifetimesettingInphpdeterminesthelifespanofessiondata, setInSeconds.1) it'sconfiguredInphp.Iniorviaini_set (). 2)

Dans PHP, vous pouvez utiliser la fonction session_name () pour configurer le nom de session. Les étapes spécifiques sont les suivantes: 1. Utilisez la fonction session_name () pour définir le nom de session, tel que session_name ("my_session"). 2. Après la définition du nom de la session, appelez session_start () pour démarrer la session. La configuration des noms de session peut éviter les conflits de données de session entre plusieurs applications et améliorer la sécurité, mais faire attention à l'unicité, à la sécurité, à la longueur et à la définition du calendrier des noms de session.

L'ID de session doit être régénéré régulièrement lors de la connexion, avant les opérations sensibles et toutes les 30 minutes. 1. Régénérez l'ID de session lors de la connexion pour empêcher les attaques fixes de session. 2. Régénérer avant les opérations sensibles pour améliorer la sécurité. 3. La régénération régulière réduit les risques d'utilisation à long terme, mais l'expérience utilisateur doit être pesée.

La définition des paramètres de cookie de session dans PHP peut être réalisée via la fonction Session_Set_COOKIE_PARAMS (). 1) Utilisez cette fonction pour définir des paramètres, tels que le temps d'expiration, le chemin, le nom de domaine, le drapeau de sécurité, etc.; 2) Appelez session_start () pour que les paramètres prennent effet; 3) Ajuster dynamiquement les paramètres en fonction des besoins, tels que l'état de connexion de l'utilisateur; 4) Faites attention à la définition de drapeaux sécurisés et httponly pour améliorer la sécurité.

L'objectif principal de l'utilisation de sessions en PHP est de maintenir l'état de l'utilisateur entre différentes pages. 1) La session est lancée via la fonction session_start (), créant un ID de session unique et le stockant dans le cookie utilisateur. 2) Les données de session sont enregistrées sur le serveur, permettant de passer les données entre différentes demandes, telles que l'état de connexion et le contenu du panier.

Comment partager une session entre les sous-domaines? Implémenté en définissant des cookies de session pour les noms de domaine communs. 1. Définissez le domaine du cookie de session sur .example.com côté serveur. 2. Choisissez la méthode de stockage de session appropriée, telle que la mémoire, la base de données ou le cache distribué. 3. Passez l'ID de session via des cookies, et le serveur récupère et met à jour les données de session en fonction de l'ID.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

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