に背後にあります:
$yourname = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : "oops, no value";
$compname = isset($_POST['compName']) ? htmlspecialchars($_POST['compName']) : "oops, no value";
NULLまたは空であっても常に設定されます。したがって、後でisset()
への呼び出しは常にtrueになります。 彼らはempty()
機能を持つ空の場合は代わりに、あなたがチェックすることがあります。
UPDATEは必要ありませんコメントで修正に応じました。 isset()
が動作するはずです。
// Check with empty()
// but still won't work properly. keep reading below...
function nametest() {
if (!empty($yourname)){
$yourname = $response[0];}
else {
$yourname = $response[1];;
}
}
ただし、可変範囲の別の問題があります。
// $yourname is passed as a function argument.
function nametest($yourname, $response) {
if (!empty($yourname)){
$yourname = $response[0];}
else {
$yourname = $response[1];;
}
}
が行き方今すぐあなたの関数が$yourname
を割り当てますが、それは任意の値を返すか、または印刷されません...:あなたがそれらをパラメータとして渡すか、global
キーワードを使用するかしない限り、変数は、関数内で使用できません。 。 return文を追加し、あなたは結果をエコーすることができます
function nametest($yourname, $response) {
if (!empty($yourname)){
$yourname = $response[0];}
else {
$yourname = $response[1];;
}
// Add a return statement
return $yourname;
}
// Now call the function, echo'ing its return value
echo nametest($yourname, $response);
あなたはこれを読んでください:http://php.net/manual/en/language.variables.scope.php –