我已经在我的脚本中检查了一个条件,但是我遇到了if
语句的问题。请检查我的代码:
function __construct($user=null)
{
parent::__construct();
require_once 'model/chanell_model.php';
$this->theme->msg='.....';
$this->db = new chanell_model();
if ($user==null && !parent::isLog()){
$this->themes=2;
}elseif ($user===null){
echo 'print';
$this->db->getChanellData();
}elseif($user!==null){
echo 'print';
}else{
$this->db->getChanellData($user);
}
}
如何才能同时$user == null
和$user != null
。
在此代码中,两个echo
命令都可以使用。
我还使用==
代替===
。
抱歉我的英文。任何帮助都会很棒。
答案 0 :(得分:0)
长长的呼吸
if ($user===null){ echo 'bye'; }else{ echo 'hi'; }
如果这段代码会同时写'再见'和'嗨',那么是时候改变你的电脑......:)
更严重的是,
尝试调试您的代码,XDEBUG将成为您终生的朋友:) 对于即时测试,您可以运行构造函数,如下所示
function __construct($user = NULL) {
parent::__construct();
require_once 'model/chanell_model.php';
$this->theme->msg = '.....';
$this->db = new chanell_model();
$debug = TRUE;
$executionId = uniqid();
$debugMessage = '';
if ((is_null($user)) && (!parent::isLog())){
$this->themes=2;
if ($debug) {
$debugMessage .= "First condition executed, id: <" . $executionId . ">\n";
}
}
elseif ($user===null){
echo 'print';
$this->db->getChanellData();
if ($debug) {
$debugMessage .= "Second condition executed, id: <" . $executionId . ">\n";
}
}
elseif($user!==null){
echo 'print';
if ($debug) {
$debugMessage .= "Third condition executed, id: <" . $executionId . ">\n";
}
}
else{
$this->db->getChanellData($user);
if ($debug) {
$debugMessage .= "Fourth condition executed, id: <" . $executionId . ">\n";
}
}
if ($debug) {
print $debugMessage;
}
}
您将看到,相同的执行ID(由uniid模拟)不能运行两次 另外:
完成后不要忘记删除调试乱。