Maison  >  Article  >  développement back-end  >  Plusieurs fonctions pratiques de PHP

Plusieurs fonctions pratiques de PHP

墨辰丷
墨辰丷original
2018-06-07 10:47:151683parcourir

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:
*/

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
*/

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
)
*/

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
)
*/


Vous pouvez également ajouter le chemin :

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

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
)
*/

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
*/

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
)
*/

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:
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