今日のPHP課題についての補足
今日のPHP課題003についての補足です。
時間設定に関して
date関数で時間を取得する際、初期で指定されているタイムゾーンの時間を取得してしまうので注意。
C:\xampp\php
上のフォルダ内にある「php.ini」ファイル。
「php.ini」に記述されている下記の部分。
[Date] ; Defines the default timezone used by the date functions date.timezone = 〜〜〜
ここの「date.timezone = 〜〜〜」を下記のように書き換える。
[Date] ; Defines the default timezone used by the date functions date.timezone = Asia/Tokyo
これで設定が変わります。
もちろん設定後はxamppのapacheを再起動してください。
時間設定をプログラム上で変えたい場合
プログラム上の任意の場所でタイムゾーンを変更したい場合は…
<?php ini_set("date.timezone", "Asia/Tokyo"); ?>
これで変えられます。
その他、雑学
- ◯「.ini」
- initializationの略。初期設定データが書かれているファイル。
- ◯「.conf/.cfg」
- configurationの略。ユーザー独自の環境設定などが書かれるファイル。
演算子について
先週のPHPの演算子のお話しのとき、「==」や「<=」、「&&」なんかの説明がありました。もちろんここら辺の演算子は本当に良く使うものなので覚えておく必要があります。
そして「<<」や「>>」の左右シフトという演算子がありますが(もちろん授業中にお話しがありましたが…)、この左右シフト、私がSEをやってた頃はよく使う演算子の1つでした。
何に使うかというと…
一言にマスクビットの制御です。
IllustratorやPhotoshopでもあったマスクです。
要は、ある物に対して任意の範囲内で囲って抽出するということです。プログラミングで言えば、何かのキーの照合や部分抽出などに使います。
マニアックな部分ですが、例えば…
1.2進数で00110010という値があったとします。(10進数では50)
number = 50;
2.この値の下位4桁のみを抽出したい場合、00001111というマスクビットをあてて抽出。00000010という値が結果として出る。(16進数で0x02)
mask = 0x02;
rst = number & mask;
3.次に上位4桁を抽出。上記00001111のマスクビットを左に4回シフトすれば上位4桁を抽出する為のマスクビットができます。
rst = number & (mask << 4);
↓マスクビットのしくみ ↓同じ桁で、両方共1の場合のみ1を返す。それ以外は0を返す。 00110010:抽出される側の値 00001111:マスクビット -------------------------- 00000010:結果
上記の例は16進数のマスクです。0xFFFFFFとかの16進数です。
見覚えありますよね。Webで使うカラー表記が16進数なんです。
頭に#を付けたりして#FFFFFFとか書きますよね。
JavaScriptなんかと組み合わせて動的に色を変えたりできそうですね。マスクビットをシフト操作してマスクし、色合いを足したり消したり…。
いらないか…w
正直ここは…マニアック過ぎましたね^^;