Perl / PHP 檢測變數有否定義方式
最近也開始回來 Coding Perl / PHP.. 所以對於未定義變數的警告訊息也進一步瞭解解決方式,這樣也是避免未來 debug 時花一大堆時間抓出一隻很可笑的 bug.
- Perl
- 使用 defined() 這個內建的 function 來判別
- 以下範例就是針對命令列要指定路定參數,如果沒有指定就將 $argv_path 設為空字串
$argv_path = (!defined($ARGV[0]))?"":$ARGV[0];
- 如果一個已經有定義的變數要變成沒定義過, 可以使用 undef 指令來取消定義
undef($argv_path);
- PHP
- 使用 isset() 這個 function 來判別
- 以下範例就是針對參數 $p_op 來檢測是否有定義,如果沒有定義就將 $p_op 設為空字串
$p_op = (!isset($p_op))?"":$p_op;