Heim >类库下载 >PHP类库 >Ein paar unauffällige Tricks in PHP

Ein paar unauffällige Tricks in PHP

高洛峰
高洛峰Original
2016-10-14 10:17:441159Durchsuche

Man sagt, es sei ein unauffälliger kleiner Trick, aber eigentlich sollte es sich um eine Routineanwendung handeln, die nicht häufig verwendet wird. Viele Dinge sind so eine Sache, sie nutzen zu können eine andere , und es zu üben ist eine andere Sache. Und um ein Meister zu werden, sind solide Grundkenntnisse erforderlich -r in perl 'echo str_repeat("ABC",5),"n";'

ABCABCABCABCABC

substr

Das ist gewohnt Zeichengeräte abfangen Wenn Sie beispielsweise den ersten Buchstaben einer Zeichenfolge abfangen möchten:

$string = 'abcdefg'

substr($string,0,1), erhalten Sie a. Aber jetzt bin ich daran gewöhnt. Wenn ich beurteile, ob die Zeichenfolge 7 ist, verwende ich jetzt isset($string[6]), weil es heißt, dass isset schneller ist als strlen. Auf die gleiche Weise wird diese Erfahrung auch verwendet, um

trim

zu zählen hat lange gedauert, sodass der Autor unerwarteterweise auch eine Parameterliste zum Entfernen unerwünschter Zeichen am Anfang und Ende akzeptieren kann, z. B. %

trim('� cdef%‘ zum Entfernen von ‚�cdef%‘, ‚%‘)

Weiter

Dieser Typ wird verwendet, um die folgende Schleife zu überspringen, nachdem er längere Zeit verwendet wurde Zeitweise dachte der Autor immer, es gäbe keine Parameter, bis der Autor einmal aus einer dreischichtigen Schleife springen wollte ...

ini_set

Wann Wir schreiben Programme basierend auf Netzwerkverbindungen und berücksichtigen die Fehlertoleranz. Die in php.ini definierte Standardzeit beträgt 60 Sekunden )

; http://php.net/default- socket-timeout

default_socket_timeout = 60

Im PHP-Handbuch können Sie ini_set verwenden, um die Konfiguration von zu ändern php.ini, also dachte ich an:

ini_set('default_socket_timeout',6);

Wenn der Autor einige neu entdeckte Funktionen verwendet, ist meine Gewohnheit:

var_dump (ini_set('default_socket_timeout',6));

Eine laufende Ergebnisaufforderung:

string(2) "60"

Häh? ? Ich habe es auf mehreren Maschinen versucht und es ist immer noch das Gleiche. Nach langer Recherche habe ich endlich ein Problem im PHP-Handbuch gefunden. Es steht so:

Rückgabewerte

Gibt bei Erfolg den alten Wert zurück, bei Misserfolg FALSE.

Hey, ich habe das Handbuch zu nachlässig gelesen!

posix_kill

I habe das Protokollrotationsskript von nginx in PHP geschrieben. Um PHP zu aktualisieren und nginx zu benachrichtigen, neue Protokolle zu generieren, habe ich posix_kill:

posix_kill($nginx_pid,SIGUSR1)

Auf den N-Maschinen verwendet, die ich verwendet habe , diese Funktion funktionierte normal. Aber als ich dieses Skript einem Kumpel geliehen habe, meldete die Maschine:

Warnung: posix_kill() erwartet, dass Parameter 2 lang ist, String angegeben

Sehen Sie sich die Funktion an Prototyp: bool posix_kill ( int $pid , int $sig )

Der zweite Parameter ist wahr. Ich muss int angeben. Warum funktioniert SIGUSR1 nicht auf meinem Rechner, aber nicht auf dem Rechner meines Kumpels? Die PHP-Version meines Kumpels ist höher als meine! kill -l und verstanden.

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

5 ) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE

9 ) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS

13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG

17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD

21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU

25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH

29) SIGINFO 30) SIGUSR1 31) SIGUSR2

Das Obige gilt für Mac, aber der entsprechende Wert von SIGUSR1 für Linux ist tatsächlich anders, ich bin sprachlos.

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) Sigalrm 15) Sigterm

16) Sigstkflt 17) SIGCHLD 18) SIGSTOP 20) SIGTSTP

21) Sigttou 23) Sigurg 24) Sigxcpu 25) Z

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN 1 36) SIGRTMIN 2 37) SIGRTMIN 3

38) SIGRTMIN 4 39) SIGRTMIN 5 40) SIGRTMIN 6 41) SIGRTMIN 7 42) SIGRTMIN 8

43) Sigrtmin 9 44) Sigrtmin 10 45) Sigrtmin 11 46) Sigrtmin 12 47) Sigrtmin 13

48) Sigrtmin 14 49) Sigrtmin 15 50) Sigrtmax-14 51) 12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

Was ist, wenn Sie verschiedene Systeme gleichzeitig unterstützen möchten? , PHP hat ein Artefakt namens PHP_OS.

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