$check = 'this is a string 111';
if ($check = 'this is a string') {
echo 'perfect match';
} else {
echo 'it did not match up';
}
但它每次都返回完美匹配而不是它不匹配...我似乎无法获得与该情况完全匹配的字符串,只有当字符串的一部分匹配时它才会起作用。
如果我尝试使用电路板代码和正则表达式模式使事情变得复杂,那就变成了一场噩梦。
if ($check = '/\[quote(.*?)\](.*?)\[\/quote\]/su') {
$spam['spam'] = true;
$spam['error'] .= 'Spam post quote.<br />';
}
因此,如果帖子只包含引号标签,它将被视为垃圾邮件并被丢弃,但我似乎无法解决它,也许我的模式是错误的。
答案 0 :(得分:10)
您需要==
而不仅仅是=
$check = 'this is a string 111';
if ($check == 'this is a string') {
echo 'perfect match';
} else {
echo 'it did not match up';
}
=
将分配变量。
==
将进行宽松的比较
===
将进行严格的比较
有关详细信息,请参阅comparison operators。
答案 1 :(得分:3)
对于相等比较,您需要==
运算符。 =
是作业。
if ($check = 'this is a string') {
应该是
if ($check == 'this is a string') {
不用担心,我们都做到了。我仍然这样做:)
答案 2 :(得分:2)
您正在使用赋值运算符=
,而不是等于运算符==
。
您需要使用
if ($check == 'this is a string') {
答案 3 :(得分:2)
if ($check = 'this is a string')
将字符串分配给始终定义的$check
变量,因此在if
应为if ($check == 'this is a string')
答案 4 :(得分:2)
==比较运算符在大多数情况下都有效,但在某些边缘情况下无法完全匹配*。
最好使用===运算符。
if ($check === 'this is a string') {
==意外工作的示例
$check = '2';
if ($check == ' 2') {