我正在阅读PHP Cookbook,在关于表格的部分中有这样的:
问题:您希望确保为表单元素提供了值。例如,您要确保文本框未留空。
然后作者详细说明了这一点:
// Making sure $_POST['flavor'] exists before checking its length
if (! (filter_has_var(INPUT_POST, 'flavor') &&
(strlen(filter_input(INPUT_POST, 'flavor')) > 0))) {
print 'You must enter your favorite ice cream flavor.';
}
我不明白这个'和'表达式评估为真
赢了!(filter_has_var(INPUT_POST,'flavor')
总是假的?
答案 0 :(得分:1)
关键是括号的顺序。检查我放在相应括号下的克拉标志:
( !(filter_has_var(INPUT_POST,'flavor') && (strlen(filter_input(INPUT_POST,'flavor'))>0)) )
^ ^
所以它实际检查:"if not both are true"
。
你可以这样重写"if X is not true or Y is not true"
:
( !filter_has_var(INPUT_POST,'flavor') || !strlen(filter_input(INPUT_POST,'flavor')) > 0 )
在我看来,这个最后一个版本更具可读性,因此我实际上更喜欢它。
答案 1 :(得分:0)
loginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
// get the user details email or password
String useremail = emailornumber.getText().toString();
String password = userpassword.getText().toString();
//fetch the password from the database
String storedPassword = databaseAdapter.getUserInfo(dpassword);
// check if password is match
if(userpassword.equals(storedPassword)){
Toast.makeText(LoginActivity.this, "You are Login", Toast.LENGTH_LONG).show();
Intent in = new Intent(LoginActivity.this, MainActivity.class);
}
else
{
Toast.makeText(LoginActivity.this, "Username and Password Does not match", Toast.LENGTH_LONG).show();
}
}
将确保表单已发送filter_has_var(INPUT_POST, 'flavor')
变量后
flavor
将确保strlen(filter_input(INPUT_POST, 'flavor')) > 0
帖子变量不是flavor
(空字符串)
使用""
将!
运算符应用于整个表达式,并确保这两个条件均为false,以使其成为真。