Maison développement back-end tutoriel php Plusieurs fonctions pratiques de PHP

Plusieurs fonctions pratiques de PHP

Jun 07, 2018 am 10:47 AM

Cet article présente principalement plusieurs fonctions pratiques de PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

1. N'importe quel nombre de paramètres pour les fonctions PHP

Vous savez peut-être que PHP vous permet de définir une fonction avec des paramètres par défaut. Mais vous ne savez peut-être pas que PHP vous permet également de définir une fonction avec des paramètres complètement arbitraires
Voici un exemple pour vous montrer une fonction avec des paramètres par défaut :

// 两个默认参数的函数
function foo($arg1 = '', $arg2 = '') {
echo "arg1: $arg1\n";
echo "arg2: $arg2\n";
}
foo('hello','world');
/* 输出:
arg1: hello
arg2: world
*/
foo();
/* 输出:
arg1:
arg2:
*/
Copier après la connexion

Jetons maintenant un coup d'oeil à une Les fonctions avec des paramètres variables utilisent la méthode func_get_args() :

// 是的,形参列表为空
function foo() {
// 取得所有的传入参数的数组
$args = func_get_args();
foreach ($args as $k => $v) {
echo "arg".($k+1).": $v\n";
}
}
foo();
/* 什么也不会输出 */
foo('hello');
/* 输出
arg1: hello
*/
foo('hello', 'world', 'again');
/* 输出
arg1: hello
arg2: world
arg3: again
*/
Copier après la connexion

2. Glob() Rechercher des fichiers De nombreuses fonctions PHP ont un nom de fonction relativement long et explicite, mais lorsque vous voyez glob(), vous ne savez peut-être pas à quoi sert cette fonction à moins que vous ne la connaissiez déjà.
Vous pouvez considérer cette fonction comme ?scandir(), qui peut être utilisée pour rechercher des fichiers.

// 取得所有的后缀为PHP的文件
$files = glob('*.php');
print_r($files);
/* 输出:
Array
(
[0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
)
*/
Copier après la connexion

Vous pouvez également rechercher plusieurs suffixes

// 取PHP文件和TXT文件
$files = glob('*.{php,txt}', GLOB_BRACE);
print_r($files);
/* 输出:
Array
(
[0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
[4] => log.txt
[5] => test.txt
)
*/
Copier après la connexion


Vous pouvez également ajouter le chemin :

$files = glob('../images/a*.jpg');
print_r($files);
/* 输出:
Array
(
[0] => ../images/apple.jpg
[1] => ../images/art.jpg
)
*/
Copier après la connexion

Si vous souhaitez obtenir le chemin absolu , vous pouvez appeler la fonction ?realpath() :

$files = glob('../images/a*.jpg');
// applies the function to each array element
$files = array_map('realpath',$files);
print_r($files);
/* output looks like:
Array
(
[0] => C:\wamp\www\images\apple.jpg
[1] => C:\wamp\www\images\art.jpg
)
*/
Copier après la connexion

3. Afficher l'utilisation de la mémoire Observer l'utilisation de la mémoire de votre programme peut vous permettre de mieux optimiser votre code.
PHP dispose d'un mécanisme de récupération de place et d'un mécanisme de gestion de la mémoire très complexe. Vous pouvez découvrir la quantité de mémoire utilisée par votre script. Pour connaître l'utilisation actuelle de la mémoire, vous pouvez utiliser la fonction memory_get_usage(). Si vous souhaitez connaître l'utilisation maximale de la mémoire, vous pouvez appeler la fonction memory_get_peak_usage().

echo "Initial: ".memory_get_usage()." bytes \n";
/* 输出
Initial: 361400 bytes
*/
// 使用内存
for ($i = 0; $i < 100000; $i++) {
$array []= md5($i);
}
// 删除一半的内存
for ($i = 0; $i < 100000; $i++) {
unset($array[$i]);
}
echo "Final: ".memory_get_usage()." bytes \n";
/* prints
Final: 885912 bytes
*/
echo "Peak: ".memory_get_peak_usage()." bytes \n";
/* 输出峰值
Peak: 13687072 bytes
*/
Copier après la connexion

4. Vérifiez l'utilisation du processeur
L'utilisation de la fonction ?getrusage() peut vous permettre de connaître l'utilisation du processeur. Notez que cette fonctionnalité n'est pas disponible sous Windows.

print_r(getrusage());
/* 输出
Array
(
[ru_oublock] => 0
[ru_inblock] => 0
[ru_msgsnd] => 2
[ru_msgrcv] => 3
[ru_maxrss] => 12692
[ru_ixrss] => 764
[ru_idrss] => 3864
[ru_minflt] => 94
[ru_majflt] => 0
[ru_nsignals] => 1
[ru_nvcsw] => 67
[ru_nivcsw] => 4
[ru_nswap] => 0
[ru_utime.tv_usec] => 0
[ru_utime.tv_sec] => 0
[ru_stime.tv_usec] => 6269
[ru_stime.tv_sec] => 0
)
*/
Copier après la connexion

Cette structure semble très obscure, à moins de connaître très bien le CPU. Quelques explications ci-dessous :

ru_oublock : opération de sortie de bloc
ru_inblock : opération d'entrée de bloc
ru_msgsnd : message envoyé
ru_msgrcv : message reçu
ru_maxrss : taille maximale de l'ensemble de rétention des résidents
ru_ixrss : taille totale de la mémoire partagée
ru_idrss : taille totale de la mémoire non partagée
ru_minflt : recyclage de pages
ru_majflt : invalidation de page
ru_nsignals : signaux reçus
ru_nvcsw : changement de contexte actif
ru_nivcsw : Changement de contexte passif
ru_nswap : Zone d'échange
ru_utime.tv_usec : Temps du mode utilisateur (microsecondes)
ru_utime.tv_sec : Temps du mode utilisateur (secondes)
ru_stime.tv_usec : Temps du noyau système (microsecondes)
ru_stime.tv_sec : Temps du noyau système ? (secondes)

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère que cela pourra aider tout le monde l’apprentissage aide.

Recommandations associées :

Utilisation de l'espace de noms de l'espace de commande PHP et utilisation (exemple)

register_shutdown_function en PHP Introduction et utilisation de la fonction (cas)

Utilisation différente de l'en-tête en php (cas)

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

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

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)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

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

Travailler avec les données de session Flash dans Laravel

6 compétences supplémentaires que chaque développeur PHP devrait avoir 6 compétences supplémentaires que chaque développeur PHP devrait avoir Feb 28, 2025 am 10:52 AM

6 compétences supplémentaires que chaque développeur PHP devrait avoir

Comprendre les tableaux en php Comprendre les tableaux en php Feb 28, 2025 am 10:53 AM

Comprendre les tableaux en php

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

Misque de réponse HTTP simplifié dans les tests Laravel

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

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

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

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

12 meilleurs scripts de chat PHP sur Codecanyon

See all articles