目立たない小さなトリックだと言われていますが、実際には、それを知っていることと、それを使用できることは別のことです。マスターになるにはしっかりした基本スキルが必要です
str_repeat
Perl の x と同様に、これを使用してください
php -r 'echostr_repeat("ABC") ,5),"n"; ' '
ABCABCABCABC
substr
これは文字列の最初の文字をインターセプトする場合に使用します:
$string = 'abcdefg'
substr($string,0,1)はAを取得しますが、今は$string[0]を使うことに慣れています。ちなみに、文字列の長さが7かどうかを判断するときは、Isset($string[6])です。 isset の方が strlen よりも優れていると言われているため、現在は代わりに使用されています。 同様に、この経験は count にも当てはまります
Trim は、先頭と末尾の空白と末尾の改行を削除するために使用されます。私はこれを長い間使用してきましたが、作者はこれを特別に実行しています。これは、'% の % を削除するなど、先頭と末尾の不要な文字を削除するためのパラメータ リストも受け入れることができます。 abcdef%'
trim('%abcdef%','%')
Continue
こいつは、長いこと使っていると、パラメータが無いとずっと思っていました。三層ループから抜け出したい時間…
ini_set
を書いています ネットワーク接続をベースにしたプログラムのフォールトトレランスを考える場合、phpで定義されているデフォルトのソケットタイムアウトを設定する必要があります。 ini は 60 秒です
; ソケットベースのストリームのデフォルトのタイムアウト (秒)
http://php. net/default-socket-timeout
default_socket_timeout = 60
php マニュアルでは、ini_set を使用して変更できます。 php.ini の設定について考えたので、次のことを考えました:
ini_set('default_socket_timeout',6);
著者はいくつかの新しい発見を使用しています この関数を使用するときの習慣は次のとおりです:
var_dump('default_socket_timeout' ,6));
実行結果プロンプト:
string(2) "60"
設定は何台変更されましたか? どうすればよいですか?
成功したら古い値を返し、失敗したら FALSE を返す
まあ、読むのは多すぎます。マニュアル 私は注意していません!
posix_kill
phpでnginxのログローテーションスクリプトを書きました。phpを更新するために、nginxに新しいログを再生成するように通知するときにposix_killを使用しました:
posix_kill($nginx_pid,SIGUSR1)
この関数は私が使用している N 台のマシンでは正常に動作しますが、このスクリプトを友人に貸したところ、マシンは次のように報告しました:
警告: posix_kill()expectsparameter 2 to be long, string provided
関数のプロトタイプを見てください。 : bool posix_kill (int$pid, int $sig)
2 番目のパラメータは int である必要があります。なぜ SIGUSR1 は私のマシンでは動作しないのに、私の友人のマシンでは動作しないのですか? 兄弟の PHP バージョンは実際には私のものよりも高いのです。
SIGUSR1 に対応する int 値を見つけるために長い間オンラインで検索しましたが、見つかりませんでした。最終的に、kill コマンドを調べて、誤って kill -l と入力してしまいました。
1) SIGHUP 2) SIGINT 3)SIGQUIT 4)SIGILL
5) SIGTRAP 6) SIGABRT 7)SIGEMT SIGFPE
9) SIGKILL 10) SIGBUS 11)SIGSEGV 12) SIGSYS
13) SIGPIPE 1 4) SIGALRM 15) IGTERM 16) シグルグ
17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD
21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM27) SIGPRO F 28) SIGWINCH
29) シギ情報 30) シグSR1 31 ) SIGUSR2
上記は Mac の場合ですが、Linux の SIGUSR1 の対応する値は実際には異なります。
1) SIGHUP 2) SIGINT 3)SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUSSIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) シグティン 22) シグトゥ 23) シグルグ24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37)
38) シグルトミン+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+1550) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-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