PHP точно соответствует строке - PullRequest
7 голосов
/ 20 января 2012
$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 />';
}

Так что, если бы пост содержал только теги цитат, это было бы рассмотрено как спам и отказ от него, но я не могу решить это, возможно, мои шаблоны неправильны.

Ответы [ 5 ]

11 голосов
/ 20 января 2012

Вам нужно использовать ==, а не просто =

$check = 'this is a string 111';
if ($check == 'this is a string') {
echo 'perfect match';
} else {
echo 'it did not match up';
}

=, чтобы присвоить переменную.

== сделает свободное сравнение

=== сделает строгое сравнение

См. операторы сравнения для получения дополнительной информации.

3 голосов
/ 20 января 2012

Для сравнения на равенство требуется оператор ==.= это назначение.

if ($check = 'this is a string') {

должно быть

if ($check == 'this is a string') {

Не волнуйтесь, мы все это сделали.Я все еще делаю :) 1009 *

2 голосов
/ 20 января 2012

Оператор сравнения == будет работать в большинстве случаев, но в некоторых случаях не удается выполнить точное совпадение *.

Лучше всего использовать оператор ===.

if ($check === 'this is a string') {

Пример, где == работает неожиданно

$check = '2';
if ($check == '          2') {
2 голосов
/ 20 января 2012

if ($check = 'this is a string') присваивает строку переменной $check, которая всегда определяется и, таким образом, всегда возвращает true в if

должно быть if ($check == 'this is a string')

2 голосов
/ 20 января 2012

Вы используете оператор присваивания = вместо оператора равенства ==.

Вам необходимо использовать

if ($check == 'this is a string') {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...