2017年11月25日土曜日

2017/11/24(金) 卒業研究の指導、PHP変数検査式の表

●卒業研究の指導
・引き続き「キラー・プレゼンテーション」を読んで付箋を貼りExcelファイルに書き出す作業を行った。完了。ExcelファイルをTsさんに渡した
・Smくんのシステム設計について助言した
・TsさんのデスクトップPC更新を指導した

●入試広報委員 業務(11/25(土) 工業高校教員向け展示)
・学部事務室長に、当日のパネル展示について協力を依頼した。快諾を得た

●サンプルコード集の更新、PHPの勉強
・PHPにおいて変数の値を検査するときの式とその結果の表(下表)を出力するPHPスクリプトを改訂し、表を拡充した
・このPHPスクリプトを研究室内サーバ dawn に置いているサンプルコード集に追加した
・あらためて見ると気付くこともある
  - empty() は未設定と NULL と数値 0 と文字列 "0" の区別が付かない
  - 数値 0 や文字列 "0" 自体も厄介。 "0" == FALSE って怖い
  - "FALSE" == 0 かつ 0 == FALSE であるが "FALSE" != FALSE で推移律不成立

●進路指導Webサイトの更新
・As先生からメールで受け取った資料1点をWebサイトに掲載した
・ある企業からメールで2019年卒向けの資料を受け取ったのでWebサイトに掲載し、企業には返信した

●PB演習 授業実施
・担当班の日報に上司としてのコメントを付けた

●進路指導Webサイトの再開発
・サーバ移行について、As先生からS社との打ち合わせ日程を調整する旨の連絡あり
・こちらの都合を返信した



表: PHPにおける変数の値を検査する式とその結果(下の注記も参照)
未設定NULL真理値
FALSE
数値
0
空文字列
""
文字列
" "
文字列
"NULL"
文字列
"FALSE"
文字列
"TRUE"
文字列
"0"
文字列
"1"
文字列
"-1"
空配列
array()
配列
array(NULL)
isset($var)FALSEFALSETRUETRUETRUETRUETRUETRUETRUETRUETRUETRUETRUETRUE
empty($var)TRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSE
is_null($var)-TRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
is_array($var)-FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUE
($var)-FALSEFALSEFALSEFALSETRUETRUETRUETRUEFALSETRUETRUEFALSETRUE
(!$var)-TRUETRUETRUETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSE
($var == NULL)-TRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSE
($var === NULL)-TRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == FALSE)-TRUETRUETRUETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSETRUEFALSE
($var === FALSE)-FALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == TRUE)-FALSEFALSEFALSEFALSETRUETRUETRUETRUEFALSETRUETRUEFALSETRUE
($var === TRUE)-FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == 0)-TRUETRUETRUETRUETRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSE
($var === 0)-FALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == "")-TRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var === "")-FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == " ")-FALSEFALSETRUEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var === " ")-FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == "NULL")-FALSEFALSETRUEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var === "NULL")-FALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSE
($var == "FALSE")-FALSEFALSETRUEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
($var === "FALSE")-FALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSEFALSE
($var == "TRUE")-FALSEFALSETRUEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
($var === "TRUE")-FALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE
($var == "0")-FALSETRUETRUEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE
($var === "0")-FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE
count($var)-0111111111101

(注記)
・isset() と empty() 以外は未設定の変数を与えると Notice を吐く。表では「-」と記載。
・($var) と (!$var) は必ずしも真理値ではない。if文や ? : 演算などの条件部に真理値として使用する場合に TRUE と FALSE のどちらとして機能するかを記載。

0 件のコメント:

コメントを投稿