Maison >développement back-end >PHP7 >Précautions pour gérer PHP5 vers PHP7 en un seul geste

Précautions pour gérer PHP5 vers PHP7 en un seul geste

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-06-08 09:15:213252parcourir

Cet article vous présentera les précautions de PHP5 à PHP7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Précautions pour gérer PHP5 vers PHP7 en un seul geste

PHP7 est la tendance générale. PHP7 propose davantage de nouvelles fonctionnalités, de meilleures performances et une vitesse plus élevée. De plus, la version bêta3 de PHP7.0 sortira à partir du 7 août de cette année, et la version RC1 de PHP7 sera bientôt disponible. Le rythme se rapproche et de plus en plus de personnes apprennent les nouvelles fonctionnalités de PHP7. PHP Academy sérialisera les nouvelles fonctionnalités de PHP7.

De plus, certains PHPers nationaux qui aiment essayer de nouvelles choses ont déjà installé PHP7. Jetons un coup d'œil aux nouvelles fonctionnalités de PHP7.

Aujourd'hui, nous allons expliquer certains styles promus par PHP et désactiver certains styles dans le PHP4 d'origine.

1. Lorsque PHP5 est sorti, afin de plaire aux programmeurs ASP, PHP a préparé l'interdiction de toutes les asp_tags

Il n'y aura plus de style e4e92d3c127c3888ce8ee7f736f89c64 ne le supportera plus.

<script language="php"></script>

2. Certaines choses dans le style de syntaxe de PHP4, comme l'utilisation des constructeurs, seront complètement abandonnées dans le nouveau PHP7. PHP7 affichera un message d'erreur : E_DEPRECATED.

<?php
class foo {
    //方法名类名相同的构造函数的用法不再兼容     
    function foo() {         
        echo &#39;I am the constructor&#39;;     
    } 
  }
?>

1. Définir les constantes prend en charge non seulement les scalaires, mais également les tableaux

<?php

define(&#39;PHPXY&#39;, array(
    &#39;凤姐&#39;,
    &#39;芙蓉姐姐&#39;,
    &#39;杨幂是臭脚&#39;
));

echo PHPXY[1]; // 输出的结果是“芙蓉姐姐”
?>

2. Prise en charge de 96b4fef55684b9312718d5de63fb7121

<?php

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

Commentaire : Nous pensons que le nombre d'utilisateurs réels n'est pas important et que l'utilisation dans le travail réel ne sera pas très élevée

3. La spécification obligatoire du type de paramètre des fonctions est prise en charge dans PHP7

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, &#39;3&#39;, 4.1));

//本例中会输出9,你想想为什么哟?——因为强制规定为了整型

Commentaire : la fonction funcName(... paramètre) est supportée à partir de PHP5.6. Ne pensez pas que c'est un point de connaissance en PHP7

4 Le type de retour est également obligatoire

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

5. Une nouvelle méthode d'appel est ajoutée pour l'appeler en externe, et la fonction anonyme est ajoutée. ajouté de manière plus courte Entrez dans l'interface et terminez l'appel

class A {private $x = 1;}

// Pre PHP 7 code
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, &#39;A&#39;); // intermediate closure
echo $getX();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

6 La méthode membre peut également stipuler qu'un certain type de classe doit être renvoyé

class A {}
class B extends A {}

class C
{
    public function test() : A
    {
        return new A;
    }
}

Certaines fonctions supprimées par PHP7 sont nécessaires pour. nous.

Dans le manuel PHP, afin de gérer spécifiquement votre mise à jour, certaines fonctions supprimées dans PHP7 sont expliquées et organisées pour vous. Si vous utilisez ces fonctions dans votre projet, veuillez les rechercher et les modifier tout au long du projet.

1. call_user_method() et call_user_method_array()

2. mcrypt_generic_end() alias en faveur de mcrypt_generic_deinit()

3. mcrypt_cfb() et mcrypt_ofb() en faveur des paramètres mcrypt_decrypt() MCRYPT_MODE_*

4 Datefmt_set_timezone_id() et IntlDateFormatter::setTimeZoneID() obsolètes en faveur de datefmt_set_timezone() ou IntlDateFormatter::setTimeZone()

5. set_magic_quotes_runtime() et sa fonction d'alias magic_quotes_runtime()

6. set_socket_blocking() est bénéfique pour sa fonction d'alias stream_set_blocking()

7. )

8. T1Lib prend en charge la suppression, donc supprimez : imagepsbbox(), imagepsencodefont(), imagepsextendedfont(), imagepsfreefont(), imagepsloadfont(), imagepsslantfont(), imagepstext()

Là Il y a eu un léger retard dans le plan de sérialisation original des nouvelles fonctionnalités de PHP7. Nous avons traduit le communiqué de presse officiel de la version PHP7 RC1. Il s'agit de la version PHP7.0 RC1 que tout le monde attendait depuis longtemps.

La version dite RC est la version qui sera officiellement lancée prochainement. (Release Candidate) est une version candidate lorsqu'elle est utilisée dans un logiciel. La plate-forme système est la version release candidate. La version RC n'ajoutera pas de nouvelles fonctionnalités et se concentrera principalement sur le débogage.

L'équipe de développement PHP a annoncé que la version PHP 7.0.0 RC 1 est une version bientôt disponible. Vous pouvez tester en détail et signaler les problèmes que vous rencontrez au système de suivi des BUG de PHP.

L'adresse pour la soumission des tests BUG est : https://bugs.php.net/

1 PHP7 est deux fois plus rapide que php 5.6

2. prise en charge des systèmes d'exploitation 64 bits

3. Plus de prise en charge des erreurs et nouveau piège d'erreurs

4. Supprimez certaines fonctions non prises en charge et les SAPI et extensions non prises en charge

5. (??)

6. Opérateur de comparaison complet (96b4fef55684b9312718d5de63fb7121)

7. Déclaration de type de retour

8. 9. Classe anonyme

PHP a supprimé certaines fonctions, dont deux font peur :

1. Fonctions régulières de la série ereg_*

2. fonctions de connexion

PHP7 supprime complètement la prise en charge des extensions Mysql et la série de fonctions mysql_* d'origine ne sera plus prise en charge dans MySQL. Par conséquent, si votre système d'application utilise toujours la série de fonctions mysql_* pour se connecter à la base de données, veuillez mettre à niveau votre série de fonctions mysql dès que possible.

Jetons un œil aux extensions qui ont été supprimées de PHP7 :

1.ereg

  • 2. 🎜>

  • 3. mysql

  • 4. sybase_ct

  • Traitement et solutions alternatives :

    1. Si vous souhaitez vous connecter à la base de données du serveur SQL de Microsoft, veuillez utiliser la solution PDO
2 Si vous utilisez l'extension de fonction de la série mysql pour vous connecter à la base de données, veuillez utiliser la fonction de la série mysql_nd plus efficace. . Il a une efficacité plus élevée

3 Si vous utilisez la série ereg, changez-la dès que possible.

4. Remplacez sybase_ct par la série sybase*

Beaucoup d'amis ne savent pas ce qu'est SAPI et ne connaissent pas la relation entre SAPI et PHP. Dans ce chapitre, tout en comprenant quels SAPI ont été supprimés dans PHP7, vous pouvez en apprendre davantage sur le mécanisme de traitement interne de PHP et. quels sont les SAPI supprimés

SAPI fait référence à l'interface de programmation pour des applications PHP spécifiques, tout comme le PC, quel que soit le système d'exploitation installé, tant qu'il répond aux spécifications de l'interface PC, il peut fonctionner normalement sur. le PC. Les scripts PHP doivent Il existe de nombreuses façons de l'exécuter, via un serveur Web, directement à partir de la ligne de commande ou intégré dans d'autres programmes.

  • aolserver

  • apache

  • apache_hooks

  • apache2filter

  • caudium

  • continuité

  • isapi

  • milter

  • nsapi

  • phttpd

  • pi3web

  • roxen

  • thttpd

  • tux

  • webjames

Les SAPI ci-dessus ne seront plus pris en charge.

Apprentissage recommandé : Tutoriel vidéo php

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer