ホームページ  >  記事  >  php教程  >  PHP トレーニング チュートリアル、PHP の目立たないヒントのいくつか

PHP トレーニング チュートリアル、PHP の目立たないヒントのいくつか

巴扎黑
巴扎黑オリジナル
2016-11-07 16:33:511507ブラウズ

目立たない小さなトリックだと言われていますが、実際には、それを知っていることと、それを使用できることは別のことです。マスターになるにはしっかりした基本スキルが必要です

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。