ResetPassword という PHP クラスがあります。このクラス内には、必要な HTML を含む別の文字列を返すスイッチがあります。
これは以下のコードです (簡潔にするためにいくつかのケースを省略しました。NULL を返すデフォルトのケースもあります)。
public function get_display_block($displayblock) {
switch ($displayblock) {
case 'EnterNewPassword':
$displayblock = '
<form action="resetpassword.php" method="post">
<fieldset class="login">
<legend>Enter your information in the form below to reset your password: </legend>
<div><label for="password1">Password :</label>
<p><input type="password" name="password1" size="40" maxlength="60" /></p> </div>
<div><label for="password2"><span class="required">*</span>Retype Password :</label>
<p><input type="password" name="password2" size="40" maxlength="60" /></p> </div>
<br />
</fieldset><br />
<br />
<div align="center"><input type="submit" name="submit" value="Submit My Information!" \></div>
</form>
';
return $displayblock;
break;
case 'THIS_ISNT_WORKING':
$displayblock = '
<form action="changepassword.php" method="post">
<fieldset class="login">
<legend>Enter your information in the form below to reset your password: </legend>
<div><label for="password1">Old Password : </label>
<p><input type="password" name="oldpassword" size="40" maxlength="60" /></p> </div>
<div><label for="password1">New Password :</label>
<p><input type="password" name="password1" size="40" maxlength="60" /></p> </div>
<div><label for="password2"><span class="required">*</span>Retype New Password :</label>
<p><input type="password" name="password2" size="40" maxlength="60" /></p> </div>
<br />
</fieldset><br />
<br />
<div align="center"><input type="submit" name="submit" value="Submit My Information!" \></div>
</form>
';
return $displayblock;
break;
} // end of switch
} //end of method
メインページでクラス/スイッチを呼び出すと、以下のコードが正常に機能します。
$reset = new ResetPassword();
$displayblock = $reset->get_display_block('EnterSecretAnswer');
ただし、THIS_ISNT_WORKING を呼び出そうとすると、何も表示されません。$displayblock の var_dump は NULL を返します。
$reset = new ResetPassword();
$displayblock = $reset->get_display_block('THIS_ISNT_WORKING');
var_dump($displayblock);
他のケース (前に省略したもの) を呼び出すと、必要な HTML が返されます。
ここで私が見逃しているものを見ることができますか? いつものように助けていただければ幸いです。
編集: return ステートメントがスイッチの外側になるように、以下のようにスイッチを更新しました。最終結果はまだ同じです。また、デフォルトのケースが呼び出されなかったことを確認するためだけに、文字列 ("abcd") を返すようにデフォルトのケースを変更しました。まだ NULL を返します。