サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
PHPを実行したところ次のメッセージが出ました。
PHP Notice: Undefined offset: 1 in C:\php056.php on line 5
◆環境
OS | Windows 7 Professional Service Pack 1 (64bit) |
---|---|
PHP | 5.5.0 (64bit) |
以前、noticeメッセージはphp.iniを変更すれば消せる事を調べました。 しかし、できることなら何もメッセージが出ない方が良いと思います。
Undefined offset は isset を使えば回避できます。
php056.php | ||
|
◆実行結果
> php php056.php
PHP Notice: Undefined offset: 1 in C:\php056.php on line 6
Notice: Undefined offset: 1 in C:\php056.php on line 6
$ar[1] is nothing.
PHP Notice: Undefined offset: 1 in C:\php056.php on line 6
Notice: Undefined offset: 1 in C:\php056.php on line 6
$ar[1] is nothing.
最初の echo では noticeメッセージが3行(1行は空行)が表示されました。 isset で $ar[1] を判定すると false になったので自前のメッセージ「$ar[1] is nothing.」が表示されました。
同じく Undefined index も isset で回避できます。
php0562.php | ||
|
◆実行結果
> php php0562.php
PHP Notice: Undefined index: one in C:\php0562.php on line 6
Notice: Undefined index: one in C:\php0562.php on line 6
$ar['one'] is nothing.
PHP Notice: Undefined index: one in C:\php0562.php on line 6
Notice: Undefined index: one in C:\php0562.php on line 6
$ar['one'] is nothing.
isset を使うと、if文の判定部分の isset($ar[1]) と実際に変数を使う場所の echo $ar[1] のように2箇所に同じ $ar[1] を書くようになります。 if文が増えるのを嫌う場合は php.ini で noticeメッセージを出さないようにした方が良いかもしれません。
Copyright (C) 2013 ymlib.com