ホームページ  >  記事  >  类库下载  >  PHP における目立たないトリックのいくつか

PHP における目立たないトリックのいくつか

高洛峰
高洛峰オリジナル
2016-10-14 10:17:441152ブラウズ

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

php -r 'echo str_repeat("ABC",5) に基づいて文字列を繰り返し出力します。 ),"n" ;'

ABCABCABCABCABC

substr

これは、文字列の最初の文字をインターセプトするなど、文字デバイスをインターセプトするために使用されます:

$string = 'abcdefg'

substr($ string,0,1 ) で a を取得しましたが、今では $string[0] を使用することに慣れています。文字列の長さが 7 かどうかを判断する場合は、代わりに Isset($string[6]) が使用されます。同様に、isset は strlen よりも速いと言われているため、この経験は

trim

trim を使用すると、先頭と末尾の空白と末尾の改行を削除するのに時間がかかりました。これを行うように特別に設計されているため、%

trim('%abcdef%',' など) の先頭と末尾にある不要な文字を削除するためのパラメーター リストも受け入れることができるとは予想していませんでした。 '%abcdef%' を削除するには %' )

Continue

このツールを長い間使ってきた後、ある時ジャンプしたいと思うまでは、パラメーターがないと思っていました。 3 レベルのループから...

ini_set

ネットワーク接続に基づいてプログラムを作成する場合、耐障害性を考慮してソケットのタイムアウトを設定する必要があります。php.ini で定義されているデフォルトの時間は 60 です。

; ソケットベースのストリームのデフォルトのタイムアウト (秒)

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

default_socket_timeout = 60

PHP マニュアルでは、ini_set を使用して設定を変更できます。

ini_set('default_socket_timeout',6 );

新しく発見した関数を使用するとき、私の習慣は次のとおりです:

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

実行結果プロンプト:

string(2) "60"

えっ?いくつかのマシンで試してみましたが、同じことが起こりました。どうすればよいでしょうか。ようやく問題が見つかりました。PHP マニュアルには次のように書かれています。 php で書かれています。php を更新するために、nginx に新しいログを再生成するよう通知します。私が使用した N 台のマシンでは、この関数は正常に動作しました。友人に、マシンは次のように報告しました:

警告: posix_kill() はパラメーター 2 が長く、指定された文字列であることを期待しています

関数のプロトタイプを見てください: bool posix_kill (int $pid, int $sig)

2 番目のパラメーターは次のようにする必要があります私のマシンの SIGUSR1 が動作しないのはなぜですか? 私の PHP バージョンが私のマシンよりも高いのですが、SIGUSR1 に対応する int 値を見つけるために長い間オンラインで検索しました。 、しかし、見つかりませんでした。最後に、kill コマンドを調べましたが、意図的ではありませんでした。kill -l と入力して、取得しました。

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) 19) シグコント 20) SIGCHLD

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

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

29) SIGINFO 30) SIGUSR1 31) SIGUSR2

上記はMacの場合ですが、 Linux の SIGUSR1 の対応する値は実際には異なります。言葉を失います。

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) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

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) RTMIN+ 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) 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

異なるシステムを同時にサポートしたい場合はどうすればよいですか?判断として、php には PHP_OS というアーティファクトがあります。

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

関連記事

続きを見る