phpビット演算はPHPではあまり使用されませんが、非常に便利なPHPビット演算の使い方を紹介します。
$a & $b and (ビット単位の AND)
$a | $b or (ビット単位の OR)
$a ^ $b Xor (ビット単位の排他的 OR)
-
~$ a Not(ビット単位ではありません)
$a
- $a >> $b 右シフト(右シフト)
説明$a & $b ビットごとの AND は、$a と $b の両方が 1 であるビットを 1 に設定します。
例:10 & 12 = 810 1010
12 1100
1000 8
$a または、$ のいずれかを設定しますa または $b は 1 になります。
例: 10 | 12 = 14
10 1010
12 1100
1110 14
$a ^ $b ビットごとの XOR
例: 10 ^ 12
10 1010
12 1100
0110
~ビット単位の表記は $a の 0 を 1 に設定し、1 を 0 に設定します
例: ~10 =
10 1010 111111111111111111111111111111111 111111111111111111111110101 -11
$a $b を左に移動すると、$a の要素が左に移動します$b 回 (各移動は 2 を乗算することを意味します);
例: 1 1(1) は 10 ビットを左に移動します 10000000000 (1024)
は 1*2 の 10 乗に相当します。 PHP に電源操作がないのは本当に憂鬱です。
$a >> $a の値を右に $b 回移動します (各移動は 2 で割ることを意味します)
例: 1024 10000000000(1024) 2 ビットで 100000000 (256)
php は演算 $a & $b と (ビット単位の AND) $a | $b or (ビット単位の OR) $a ^ $b Xor (ビット単位の排他的 OR) ~$a Not (ビット単位) not) $a > $b 右にシフト (右にシフト)
$a と $b を結合する $a & $b の詳細説明両方とも 1 から 1 のビット; 例: 10 & 12 = 810 101012 1100 1000 8
$a | $b ビットごとの OR は、$a または $b の 1 であるビットを 1 に設定します。 1100 1110 14
$a ^ $b ビット単位の XOR の例: 10 ^ 1210 101012 1100 0110 6
~a ビット単位の NOT は、$a の 0 を 1 に設定し、1 を 1 に設定します。 例: ~10 = 10 1010 11111111111111111111111 1111111111111111111111111111111110101 -11
$ a $a >> $b 右シフト $a を右に $b 回移動します (各移動は 2 で除算することを意味します) 例: 1024
PHPの
error_reportingのパラメータ値リスト
- 1 E_ERROR
- 2 AR NING
- 4 E_PARSE
- 8 E_NOTICE
- 16 E_CORE_ERROR
- 32 E_CORE_WARNING
- 64 E_COMPILE_ ERROR
- 128 E_COMPILE_WARNING
- 256 E_
- 512 E_USER_WARNING
- 1024 E_USER_NOTICE
40 96 E_RECOVERABLE_ERROR- value の値がすべて飛んでいることがわかり、 all 2のn+1乗です
これをもう一度見てください。 value の値をバイナリに変換します。
値定数
0000 0001 E_ERROR0000 0010 E_WARNING
0000 0100 E_PARSE
0000 1000 E_NOTICE
0001 0000 E_CORE_ERROR
0010 E_CORE_WARN ING
.
.
.
... ...電力が 1 回追加されるごとに、1 桁がバイナリ システムに追加されました (コンピューターを勉強したことのあるほとんどの人はこれを知っています:)…)
注: 各オプションはビットに対応します (1 はオンを意味し、0 はオフを意味します)
それでは、パラメーターを設定する利点を見てみましょうこのような。
例として 3 つのパラメータを使用して効果を確認します
error_reporting(3);//decbin(3) == 0000 0011; (相当于设置 E_WARNING 和 E_ERROR ) error_reporting(4);//decbin(4) == 0000 0100;(相当于设置 E_PARSE ) error_reporting(5);//decbin(5) == 0000 0101;(相当于设置 E_PARSE 和 E_ERROR)
設定の取得:
特定の項目がオンになっているかどうかを判断するには、ビット演算を使用して取得できます (& - "AND" ルール、すべて 1 は 1 です) 、それ以外の場合は 0)
//E_PARSE
if($n & 4){//E_PARSE がオンになります
//4の 2 進数は 0100 です。3 番目のビットだけが 1 なので、「」を実行すると、 &" 演算
他の場合
すべては 0 に設定されます//したがって、$n の 3 番目のビットも 1 である場合にのみ結果が 0 より大きくなります。 //4(0100)、5(0101)、6(0110)、7(0111)など
}else{
//E_PARSEはオフです
//3番目のビットは0で、このオプションがオフであることを意味します
設定の変更: ($n は現在の 10 進数値を表します)
アプリケーション中に、必要に応じて特定のビットのスイッチを設定することがあります。
以下の使用法を参照してください。//E_PARSE 項目を閉じて、「&」「AND」ルールを使用します
$n = $n&(8192-4-1);
//なぜ 8191 を使用するのですか?
//これはオプションの数に関係します。このエラー表示マークは合計 13 ビットを使用します (4096 は 2 進数で 13 ビット)、8192 は (14 ビット) です。
//なぜマイナス 4 マイナス 1 なのでしょうか。 ?
//8192-4-1=8187。 (1111111111011) 2 進数は 13 桁で、使用する最大桁数と同じです。そして、3 番目のビットの対応する値は 0 です。
//この数値を使用して、1 ~ 4096 の間の任意の数値とビットごとの AND 演算を実行します。0 に設定される 3 番目のビットを除いて、他のビットの値は変更されません? "AND" ルール:)
//同様に、E_WARNING をオフにしたい場合
//$n = $n&(8192-2-1);
//E_PARSE 項目を有効にするには、'|' を使用しますOR" ルール
$ n = $n|4;
//上記の終了を読んだ後、開始についていくつかのアイデアが浮かぶかもしれません:)
// '|' - "OR" ルールには 1 が 1 として含まれ、それ以外の場合は 0 になります。
//上記はすべてのビットです。1 の場合、他のビットには影響しません。次に、すべてのビットが 0 の場合、他のビットには影響しません:)
//したがって、対応する値を設定するだけです。後続のオペランドの 2 進ビットを 1 にすると、他のビットはすべて 0 になり、問題ありません。
//見つけましたか?これは、それぞれの設定項目に対応する 10 進数値です:
以上がPHPのメディアン演算の使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









