#前提
issetで確認しないと、PHP Noticeが出てしまうので条件に加えました。でも、長ったらしいIF文になるので、関数を使って簡略なコードにしたいです。
こちら、MySQLとPHPの2週間程度の知識しか持ち合わせていません。
まだ、開発を一度も完成させたことがありません。
#修正したいコード
if(isset($_POST['hoge']) ? $_POST['hoge'] : NULL or isset($_POST['piyo']) ? $_POST['piyo'] : NULL) { updated_spamham_info($_POST['id'], $_POST['hoge'], $_POST['piyo']); }
#執筆者の考え(実現したいこと)
IF文の中に関数を入れてやればよいと考えました。
function foo($str) { $a = isset($str) ? $str : NULL; return $a; } if( foo($_POST['hoge']) or foo($_POST['piyo']) ) { updated_spamham_info($_POST['id'], $_POST['hoge'], $_POST['piyo']); }
出力結果
Notice: Undefined index: hoge in C:+++++++++++++++++++++++++++.php on line 6
Notice: Undefined index: hoge in C:+++++++++++++++++++++++++++.php on line 6
#試したこと
①関数が読み込まれてない可能性を疑い、関数名を変更してみました。
同じエラーが出力されたら、関数の置き方が違うかもしれない。
→エラー文が異なっていたので、関数の置き方は正しいと判断しました。
function bar($str) { $a = isset($str) ? $str : NULL; return $a; } if( foo($_POST['hoge']) or foo($_POST['piyo']) ) { updated_spamham_info($_POST['id'], $_POST['hoge'], $_POST['piyo']); }
出力結果
Fatal error: Uncaught Error: Call to undefined function foo() in C:+++++++++++++++++++++++++++.php:6 Stack trace: #0 {main} thrown in C:+++++++++++++++++++++++++++.php:6 on line 6
②IF文の中に関数を入れるのが不適切だと考え、外に出しました。
function foo($str) { $a = isset($str) ? $str : NULL; return $a; } $a = foo($_POST['hoge']); $b = foo($_POST['piyo']); if( $a or $b ){ updated_spamham_info($_POST['id'], $_POST['hoge'], $_POST['piyo']); }
出力結果
Notice: Undefined index: hoge in C:+++++++++++++++++++++++++++.php on line 1
Notice: Undefined index: piyo in C:+++++++++++++++++++++++++++.php on line 2
#補足情報
・開発環境
name | version |
---|---|
Eclipse | Version 2019-03 (4.11) |
A5M2 | SQL Mk-2 Version:1.14.1(x64 edition) |
XAMPP | Windows 7.3.4 |
PHP | PHP 7.3.4 |
Apache | Apache/2.4.39 (Win64) |
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/13 17:09 編集
2019/05/13 16:58 編集
2019/05/14 00:54
2019/05/15 11:26 編集