Maison  >  Article  >  développement back-end  >  Quelques conseils pratiques pour PHP

Quelques conseils pratiques pour PHP

尚
avant
2020-03-10 09:38:542410parcourir

Quelques conseils pratiques pour PHP

1. Convertir le numéro de type chaîne en type numérique

$str = '123';
//方法一
(int)$str;
//方法二
intval($str);
//方法三
+$str;

Les méthodes 1 et 2 sont des conversions forcées, même si le numéro de chaîne contient des lettres. La troisième méthode doit garantir qu'il s'agit d'une chaîne numérique pure, sinon une erreur sera signalée.

Recommandé : "formation php"

2 Ajoutez des éléments au tableau

$arr = ['a'];
//方法一
array_push($arr,'b', 'c');
//方法二
$arr[] = 'd';

1 Si vous poussez un élément, utilisez la méthode 2. Haute efficacité car elle peut éviter la charge supplémentaire liée à l'appel de fonctions.

2. Si plusieurs éléments sont poussés en même temps, l'utilisation de array_push est efficace car il n'est pas nécessaire d'obtenir à plusieurs reprises le pointeur vers la fin du fichier.

3. boucle for

//正常写法
for($i = 0; $i < count($arr); $i++){
	//
}
//优化一
for($i = 0, $len = count($arr); $i < $len; $i++){
	//
}
//优化二
for($i = count($arr) - 1; $i > -1; --$i){
	//
}

Optimisation 1 : Le problème est que le jugement conditionnel doit calculer la longueur du tableau à chaque fois. variable pour la stocker au début. La boucle for dans d'autres langages est probablement la même...

Optimisation 2 : Lorsqu'il n'est pas nécessaire de passer de petit à grand, vous pouvez enregistrer une variable $len. Il y a aussi une petite optimisation - $i est plus rapide que $i--.

Résumé : Ce n'est pas que l'optimisation 2 soit nécessairement bonne, j'ai juste pensé à cela et je l'ai écrit. Cependant, je pense qu'une bonne boucle for devrait au moins prêter attention à l'optimisation. De plus, $i++ peut être remplacé par ++$i !

4. foreach traversal

//写法一
foreach($arr as $k => $v){
	//
}
//写法二
foreach($arr as $v){
	//
}
//写法三
foreach($arr as &$v){
	//	
}
//写法四
$arr = [
	[1,2,3],
	[4,5,6]
];
foreach($arr as list($a,$b,$c)){
	//
}

1 Tout d'abord, vous devez savoir une chose dans la première et la deuxième méthodes d'écriture, $v ne prend pas le. L'adresse $v est une copie de la valeur clé. Alors ne changez pas le tableau/objet lui-même dans foreach, c'est inutile.

2. Lorsqu'il n'y a pas besoin de noms de clés ou d'index, n'écrivez pas $k Il n'y a rien à dire à ce sujet.

3. Concernant la méthode d'écriture 3, affectation de référence d'adresse, l'avantage est qu'elle permet un gain de place lorsque la valeur est très grande. Mais il convient de noter que quelle que soit la façon dont vous l'écrivez, $v sera conservé après la boucle foreach. Si vous utilisez la méthode de prise d'adresse à ce moment-là, il serait mauvais d'utiliser à nouveau $v. Le manuel recommande de ne pas le définir. ($v).

4. La quatrième méthode d'écriture concerne l'application de tableaux/objets bidimensionnels, en utilisant une liste pour décompresser le tableau clé-valeur. Notez que si le nombre de variables reçues dans la liste est supérieur à la longueur du tableau bidimensionnel réel, une erreur sera signalée. S'il est inférieur, elle ne sera tout simplement pas reçue, vous devez donc toujours en tenir compte. l'utiliser.

5. Concernant le jugement nul

//写法一
is_null($a);
//写法二
$a === null

Les deux méthodes d'écriture ont exactement le même effet. Utilisez la méthode 2 pour enregistrer les appels de fonction.
N'utilisez pas == si vous pouvez utiliser ===.

6. Jugements multiples

$a = 1;
//写法一
if($a === 0){
	//
}elseif($a === 1){
	//
}else{
	//
}
//写法二
do{
	if($a === 0){
		//
		break;
	}
	if($a === 1){
		//
		break;
	}
	//
}while(false);
//写法三
switch(true){
	case 0:
		//
		break;
	case 1:
		//
		break;
	default:
		//
}

7. Utilisation magique de la liste

//妙用一
list($a,$b) = [$b,$a];
//妙用二
list(,$fn) = explode(&#39;_&#39;,&#39;Api_deleteUser&#39;);

8. La longueur de la chaîne anglaise dépasse la limite

//一般方式
strlen($str) > 10;
//优化方式
isset($str[10]);

isset est une instruction PHP. , strlen est une fonction.

9. Plusieurs façons d'écrire un jugement nul

//当$a不为null时$b = $a,否则$b = 233333。
//方式一
$b = $a or $b = 233333;
//方式二
$b = $a ? $a : 23333;
//方式三
$b = $a ?: 233333;
//方式四,PHP7
$b = $a ?? 233333;

Faites attention à la différence entre la méthode trois et la méthode quatre et indiquez clairement ce que vous voulez juger. En plus de la quatrième méthode, les trois autres peuvent également déterminer false,'','0',0,[].

10. Échangez deux variables

//方式一:比较清晰,有变量产生
$temp = $a;
$a = $b;
$b = $temp;
//方法二:比较清晰,但也会产生临时变量
list($b, $a) = [$a,$b];
//方式三:在整数运算时互逆运算比较靠谱,但+ – * /可能精度丢失或溢出
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;

11. Évitez d'utiliser la récursion

//递归
function fibonacci($n){
	if($n == 0 || $n == 1){
		return 1;
	}
	return fibonacci($n - 1) + fibonacci($n - 2);
}
//非递归
function fibonacci($n){
	$arr = [1,1];
	for($i = 2; $i < $n + 1; ++$i){
		$arr[] = $arr[$i - 1] + $arr[$i - 2];
	}
	return $arr[$n];
}

12. N'omettez pas les accolades après if

//写法一
if($a === null) $a = 1;
//写法二
if($a === null)
	$a = 1;
//写法三
if($a === null){
	$a = 1;
}
//如果可以避免写if更好
$a = $a ?? 1;

13. _SERVER['REQUEST_TIME'] remplace time().

Ce dernier provoquera un appel de fonction, et si la valeur précise du temps n'est pas requise, le premier est beaucoup plus rapide.

14. Utiliser moins/pas besoin de continuer

continuer consiste à revenir en tête de la boucle, et la fin de la boucle doit revenir en tête de la boucle, donc grâce à une construction appropriée, nous pouvons complètement éviter d'utiliser ceci déclaration, afin que l'efficacité soit améliorée.

15. Définissez d'abord les variables, puis utilisez-les

L'utilisation d'une variable non définie est plus de 8 fois plus lente que l'utilisation d'une variable définie !

Le moteur PHP suivra d'abord la logique normale pour obtenir cette variable. Cependant, cette variable n'existe pas, le moteur PHP doit donc lancer un AVIS, entrer une section de logique qui doit être suivie lors de l'utilisation de variables non définies, puis renvoie une nouvelle variable

16. Concernant la dénomination

Selon la spécification PSR, les méthodes doivent utiliser un petit boîtier chameau.

Selon la spécification PSR, la dénomination des classes doit être en étui chameau.

La dénomination des variables n'est pas claire dans la spécification et devrait être unifiée au sein du projet. (La version soulignée est plus facile à comprendre)

Les variables booléennes doivent commencer par can, is et has autant que possible.

17. Évitez d'utiliser des expressions régulières

18. Utilisez des accolades pour mettre les variables entre guillemets doubles et heredoc

Pour plus de contenu lié à la programmation, veuillez faire attention au site Web chinois php. Tutoriel de programmation !

Recommandations associées :

Tutoriel vidéo PHP, adresse d'apprentissage : https://www.php.cn/course/list/29/type/2.html

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