所以这似乎应该很容易,但我不知道为什么它不起作用。我是一个周末代码战士,所以很有可能我有一些明显缺失的东西。问题是我正在做一个简单的if语句来检查变量是否等于数字或'字符串',当它显然不相等时它仍在运行if语句。
$user = ca_get_user(get_current_user_id());
$role = $user->role;
if ($role == '2'):
print_r ($role);
endif;
返回此
1
好吧,因为角色被定义为1.所以我认为除非我的逻辑已被扭曲很长一段时间,否则不应该发生。我已经对$ role进行了is_numeric检查,并且返回为false。我也试过这个数字只是为了好的措施。我错过了会让这种回归成为现实的东西吗? (它实际上是针对任何比较运行的。如果我将它设置为任何比较,它就不会运行!=)
使用此变量设置为数据库。
<select name="user_company_type" required>
<option value="" disabled selected>Company Type*</option>
<option value="1" <?php if(isset($_POST['user_company_type']) && $_POST['user_company_type'] == '1') echo 'selected'; ?>>General Contractor</option>
<option value="2" <?php if(isset($_POST['user_company_type']) && $_POST['user_company_type'] == '2') echo 'selected'; ?>>Architect</option>
<option value="3" <?php if(isset($_POST['user_company_type']) && $_POST['user_company_type'] == '3') echo 'selected'; ?>>Owner/Developer/OPM</option>
<option value="4" <?php if(isset($_POST['user_company_type']) && $_POST['user_company_type'] == '4') echo 'selected'; ?>>Sub-Contractor</option>
<option value="5" <?php if(isset($_POST['user_company_type']) && $_POST['user_company_type'] == '5') echo 'selected'; ?>>Building Consultant</option>
</select>
答案 0 :(得分:0)
如果ca_get_user()
返回某种对象,其中role
是其中的属性,那么这可能是您要表达的内容:
$user = ca_get_user(get_current_user_id());
$role = $user->role;
if (2 === intval($role)):
print_r ($role);
endif;
更经典的实现方式是:
$user = ca_get_user(get_current_user_id());
$role = $user->role;
if (2 === intval($role)) {
print_r ($role);
}
不确定是否需要intval()
来电,这取决于我不知道的课程定义。但是添加它可能可能安全,它可能会阻止一些意外。您真的应该通过查看文档或转储用户对象一次来了解$user->role
的类型。