我有一個名爲ResetPassword的PHP類。在這個類中是一個開關,它將返回一個包含所需HTML的不同字符串。PHP開關按預期工作
這是下面的代碼(我省略了一些病例爲簡潔起見,也有它返回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。
任何人都可以看到我在這裏失蹤的東西嗎? 像往常一樣的任何幫助將不勝感激。
編輯:我已經按照下面的要求更新了開關,以便返回語句在開關外。最終結果仍然是一樣的。 我也改變了默認情況下返回一個字符串(「abcd」)只是爲了驗證默認情況下不被調用,並沒有。仍然返回NULL。
此外,你真的應該從你的核心邏輯分離你的HTML。使用模板類方法來加載你的html塊。 –
您的示例代碼[適用於我](http://codepad.viper-7.com/4qGHyq)。 – nickb
您的示例代碼工作正常,唯一的問題與我必須糾正,使其運行的函數get_display_block - 我必須通過一個額外的花括號「}」關閉功能。 – Dharmavir