Heim >类库下载 >PHP类库 >(Einführung in die PHP-Technologie) 8 wesentliche PHP-Funktionsentwicklung

(Einführung in die PHP-Technologie) 8 wesentliche PHP-Funktionsentwicklung

高洛峰
高洛峰Original
2016-10-14 10:59:541534Durchsuche

Programmierer, die PHP-Entwicklung durchgeführt haben, sollten wissen, dass es viele integrierte Funktionen in PHP gibt. Ihre Beherrschung kann Ihnen dabei helfen, sich in der PHP-Entwicklung besser zurechtzufinden sehr praktisch und ich hoffe, dass alle PHP-Entwickler sie beherrschen können.


1. Übergeben Sie eine beliebige Anzahl von Funktionsparametern

Bei der .NET- oder JAVA-Programmierung ist die Anzahl der Funktionsparameter im Allgemeinen festgelegt, PHP ermöglicht jedoch die Verwendung beliebiger Anzahlparameter. Das folgende Beispiel zeigt Ihnen die Standardparameter einer PHP-Funktion:

// Funktion mit zwei Standardparametern
function foo($arg1 = ”, $arg2 = ”) {
echo „arg1 : $arg1n";
echo "arg2: $arg2n";
}
foo('hello','world');
/* Ausgabe:
arg1: hallo
arg2 : world
*/
foo();
/* Ausgabe:
arg1:
arg2:
*/
Das folgende Beispiel ist die Verwendung variabler Parameter in PHP , Es verwendet die Methode func_get_args():
// Ja, die formale Parameterliste ist leer
function foo() {
// Ruft ein Array aller eingehenden Parameter ab
$args = func_get_args( );
foreach ($args as $k => $v) {
echo „arg“.($k 1)..“: $vn“; ();
/* Es wird nichts ausgegeben*/
foo('hello');
/* Ausgabe
arg1: hallo
*/
foo('hello' , 'world', 'again');
/* Ausgabe
arg1: hallo
arg2: world
arg3: again
*/


2 glob() zum Suchen von Dateien

Die Funktionsnamen der meisten PHP-Funktionen können ihren Zweck buchstäblich verstehen, aber wenn Sie glob() sehen, wissen Sie möglicherweise nicht, wofür es verwendet wird. Ja, tatsächlich ist glob(. ) ist dasselbe wie scandir() und kann zum Suchen von Dateien verwendet werden. Bitte beachten Sie die folgende Verwendung:

// Alle Dateien mit dem Suffix PHP abrufen
$files = glob('* .php' );
print_r($files);
/* Ausgabe:
Array
(
[0] => phptest.php
[1] => pi. php
[2] => post_output.php
[3] => test.php
)
*/

Sie können auch nach mehreren Suffixen suchen:


// PHP-Dateien und TXT-Dateien abrufen
$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
)
*/

Sie können auch den Pfad hinzufügen:


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

Wenn Sie den absoluten Pfad erhalten möchten, Sie können die Funktion realpath() aufrufen:


$files = glob('../images/a*.jpg');
// wendet die Funktion auf jedes Array-Element $files = array_map('realpath',$files);
print_r($files);
/* Ausgabe sieht so aus:
Array
(
[0] => C: wampwwwimagesapple.jpg
[1] => C:wampwwwimagesart.jpg
)
*/

3. Informationen zur Speichernutzung abrufen

Der Speicherrecyclingmechanismus von PHP war es ist sehr leistungsfähig. Sie können auch PHP-Skripte verwenden, um die aktuelle Speichernutzung abzurufen, die Funktion „memory_get_usage()“ aufrufen, um die aktuelle Speichernutzung abzurufen, und die Funktion „memory_get_peak_usage()“ aufrufen, um die maximale Speichernutzung abzurufen. Der Referenzcode lautet wie folgt:
echo „Initial: „.memory_get_usage().“
/* Output
Initial: 361400 Bytes
*/
// Speicher verwenden
for ($i = 0; $i $array []= md5($i);
}
// Lösche die Hälfte des Speichers
for ($i = 0; $i unset($array[$i]);
} echo „Final: „.memory_get_usage().“ ;
/* druckt
Final: 885912 Bytes
*/ echo „Peak: „.memory_get_peak_usage().“
/* Spitzenwert ausgeben
Peak: 13687072 Bytes
*/

4. Informationen zur CPU-Nutzung abrufen

Nach dem Abrufen der Speichernutzung können Sie auch PHPs getrusage() verwenden, um die CPU-Nutzung zu ermitteln unter Windows.

print_r(getrusage());
/* Ausgabe
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
)
*/

Diese Struktur erscheint sehr unklar, es sei denn, Sie kennen die CPU sehr gut. Hier einige Erklärungen:
ru_oublock: Block-Ausgabevorgang
ru_inblock: Block-Eingabevorgang
ru_msgsnd: Gesendete Nachricht
ru_msgrcv: Empfangene Nachricht
ru_maxrss: Maximale residente Satzgröße
ru_ixrss: Gesamt Größe des gemeinsam genutzten Speichers
ru_idrss: Gesamtgröße des nicht gemeinsam genutzten Speichers
ru_minflt: Seitenrecycling
ru_majflt: Seitenungültigmachung
ru_nsignals: Empfangene Signale
ru_nvcsw: Aktiver Kontextwechsel
ru_nivcsw: Passiver Kontext Umschalten
ru_nswap: Swap-Bereich
ru_utime.tv_usec: Benutzermoduszeit (Mikrosekunden)
ru_utime.tv_sec: Benutzermoduszeit (Sekunden)
ru_stime.tv_usec: Systemkernelzeit (Mikrosekunden))
ru_stime.tv_sec: Systemkernelzeit? (Sekunden)

Um zu sehen, wie viel CPU Ihr Skript verbraucht, müssen wir uns die Werte von „Benutzermoduszeit“ und „Systemkernelzeit“ ansehen. Die Sekunden- und Mikrosekundenteile werden separat bereitgestellt. Sie können den Mikrosekundenwert durch 1 Million dividieren und zum Sekundenwert addieren, um die Anzahl der Sekunden mit einem Bruchteil zu erhalten.


// 3 Sekunden schlafen (nicht beschäftigt)
$data = getrusage();
echo „Benutzerzeit:“ $data['ru_utime.tv_sec']
$data['ru_utime.tv_usec'] / 1000000);
echo „Systemzeit:“
($data['ru_stime.tv_sec']
$data['ru_stime.tv_usec'] / 1000000);
/* Ausgabe
Benutzerzeit: 0,011552
Systemzeit: 0
*/
Schlaf belegt keine Systemzeit Ja, Wir können uns das folgende Beispiel ansehen:

// Schleife 10 Millionen Mal (beschäftigt)
for($i=0;$i}
$ data = getrusage(); echo „Benutzerzeit:“ Systemzeit: „.
($data['ru_stime.tv_sec']
$data['ru_stime.tv_usec'] / 1000000);
/* Ausgabe
Benutzerzeit: 1,424592
Systemzeit: 0,004204
*/


Dies nahm etwa 14 Sekunden CPU-Zeit in Anspruch, fast die gesamte Benutzerzeit, da es keine Systemaufrufe gab.
Systemzeit ist die Zeit, die die CPU damit verbringt, Kernel-Anweisungen bei Systemaufrufen auszuführen. Hier ist ein Beispiel:
$start = microtime(true);
// rufe microtime etwa 3 Sekunden lang auf
while(microtime(true) – $start }
$data = getrusage();
echo „Benutzerzeit: „ echo „Systemzeit:“.
($data['ru_stime.tv_sec']
$data['ru_stime.tv_usec'] / 1000000); /* druckt
Benutzerzeit: 1.088171
Systemzeit: 1.675315
*/

Wir können sehen, dass das obige Beispiel mehr CPU verbraucht.

5. Systemkonstanten abrufen

PHP bietet sehr nützliche Systemkonstanten, mit denen Sie die aktuelle Zeilennummer (__LINE__), Datei (__FILE__), Verzeichnis
(__DIR__) und Funktion abrufen können Name (__FUNCTION__), Klassenname (__CLASS__), Methodenname (__METHOD__) und Namespace
(__NAMESPACE__), ähnlich wie in der C-Sprache.

Wir können davon ausgehen, dass diese Dinge hauptsächlich zum Debuggen verwendet werden, aber nicht unbedingt. Wir können beispielsweise ?__FILE__ verwenden, wenn wir andere Dateien einbinden (natürlich können Sie auch __DIR__ nach PHP 5.3 verwenden), wie folgt ist ein Beispiel.

// Dies ist relativ zum Pfad des geladenen Skripts
// Es kann zu Problemen kommen, wenn Skripte aus verschiedenen Verzeichnissen ausgeführt werden
require_once('config/database.php');
// Dies ist immer relativ zum Pfad dieser Datei
//, egal wo sie eingefügt wurde
require_once(dirname(__FILE__) . '/config/database.php'); _LINE__, um einige Debug-Informationen auszugeben, die Ihnen beim Debuggen des Programms helfen:
// etwas Code
// …
my_debug(“some debug message”, __LINE__); >Zeile 4: etwas Debug-Nachricht
*/
// etwas mehr Code
// …
my_debug(“another debug message”, __LINE__);
/* Ausgabe
Zeile 11: eine weitere Debug-Nachricht
*/
function my_debug($msg, $line) {
echo „Line $line: $msgn“;

6 id

Viele Freunde verwenden md5(), um eindeutige Zahlen zu generieren, aber md5() weist mehrere Mängel auf: 1. Unordnung, die zu einer Verringerung der Sortierleistung in der Datenbank führt. 2. Zu lang und erfordert mehr Speicherplatz. Tatsächlich verfügt PHP über eine Funktion zum Generieren einer eindeutigen ID. Diese Funktion ist uniqid(). Das Folgende ist die Verwendung:

// eindeutige Zeichenfolge generieren
echo uniqid();
/* Ausgabe
4bd67c947233e
*/
// eine weitere eindeutige Zeichenfolge generieren
echo uniqid();
/* Ausgabe
4bd67c9472340
*/

Dieser Algorithmus wird basierend auf dem CPU-Zeitstempel generiert, also in einem ähnlichen Zeitraum, den ersten paar Ziffern von Die IDs sind ebenfalls einfacher. Wenn Sie Duplikate besser vermeiden möchten, können Sie vor der ID ein Präfix hinzufügen, z. B.:
// Prefix
echo uniqid('foo_');
/ * Ausgabe
foo_4bd67d6cd8b8f
*/
// Hat mehr Entropie
echo uniqid(”,true);
/* Ausgabe
4bd67d6cd8b926.12135106
* /
// Beide haben
echo uniqid('bar_',true);
/* Ausgabe
bar_4bd67da367b650.43684647
*/

7. Serialisierung

Sie können die Serialisierungsfunktion von PHP immer häufiger verwenden, wenn Sie Daten in einer Datenbank oder Datei speichern müssen. Sie können die Serialisierungs- und Umkehrserialisierungsmethoden in PHP verwenden lautet wie folgt:


// Ein komplexes Array
$myvar = array(
'hello',
42,
array(1,'two '),
'apple'
);
// Serialisierung
$string = serialize($myvar);
echo $string; i:0;s:5:“Hallo“;i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:“ zwei";} i:3;s:5:"apple";}
*/
// Deserialisierung
$newvar = unserialize($string);
print_r($newvar ); Ausgabe
Array
(
[0] => hallo
[1] => 42
[2] => Array
(
[0] => 1
[1] => zwei
)
[3] => Apfel
)
*/

Wie serialisiert man in das JSON-Format? Keine Sorge, PHP hat es Dies wurde bereits für Sie erledigt. Benutzer, die PHP 5.2 oder höher verwenden, können die Funktionen json_encode() und json_decode() verwenden, um das JSON-Format zu serialisieren:


// ein komplexes Array
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
/
/ in einen String konvertieren
$string = json_encode($myvar);
echo $string;
/* druckt
["hello",42,[1,"two"],"apple ”]
*/
// Sie können die ursprüngliche Variable
$newvar = json_decode($string);
print_r($newvar); drucken
Array
(
[0] => hallo
[1] => 42
[2] => Array
(
[0] => 1
[1] = > zwei
)
[3] => Apple
)
*/

8. String-Komprimierung

Wenn wir über Komprimierung sprechen, denken wir vielleicht tatsächlich an Dateikomprimierung , Zeichenfolgen können auch komprimiert werden. PHP bietet die Funktionen gzcompress() und gzuncompress():
$string =
"Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc ut elit id mi ultricies
adipiscing. Keine Erleichterung. Praesent pulvinar ,
sapien vel feugiat vestibulum, nulla dui pretium orci,
non ultricies elit lacus quis ante.
sit amet, consectetur adipiscing elit. ac massa
sed turpis tempor luctus eu elit
mollis congue, at lacinia
augue id euismod urna sodales. ";
$compressed = gzcompress($string);
echo "Originalgröße: ". strlen($string)."n";
/* Originalgröße ausgeben
Originalgröße: 800
*/
echo „Komprimierte Größe: „. strlen($compressed).“n“;
/* Komprimierte Ausgabegröße: 418
*/
// Dekomprimierung
$original = gzuncompress($compressed);

Fast 50 % Komprimierungsverhältnis. Gleichzeitig können Sie zum Komprimieren auch die Funktionen gzencode() und gzdecode() verwenden, indem Sie einfach unterschiedliche Komprimierungsalgorithmen verwenden.

Die oben genannten 8 wesentlichen PHP-Funktionen für die Entwicklung sind sie alle praktisch?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen