PHP: как можно избежать предупреждений при использовании strpos () с пустыми или пустыми строками? - PullRequest
0 голосов
/ 29 апреля 2020

Я извлекаю данные из БД, и иногда возвращаемое значение является пустой строкой или нулем. когда я пытаюсь оценить наличие набора символов в возвращаемом значении в целом, выдается предупреждение. Я хотел бы знать, как оценивать, не генерируя предупреждение и, следовательно, замедляя PHP. вот что я делаю:

if(strpos($db_result, $valueToCheckFor) !== false) // do stuff

значение $ db_result часто пустое или нулевое, потому что там ничего нет, что хорошо, потому что я хочу записать в него данные. иногда данные будут существовать, и я захочу CONCAT к данным, но только если valueToCheckFor не существует. например:

valueToCheckFor = 'AP'
db_result = ''          <--- yep.  want to write to this (very common - generates Warning)
db_result = 'fnork'     <--- yep.  want to write to this (less common)
db_result = 'fnorkAP'   <--- nope.  do NOT want to write to this (rare)

, поэтому я не беспокоюсь о проверке , работающей , потому что она работает нормально. я AM обеспокоен тем, что каждый раз, когда я получаю пустую строку (или ноль), он выдает предупреждение, как это:

Deprecated: strpos(): Non-string needles will be interpreted as strings in the future.
Use an explicit chr() call to preserve the current behavior

я смотрел на chr(), но не могу понять, как он применяется

как мне изменить мой if статус, чтобы избежать получения этих предупреждений?

1 Ответ

0 голосов
/ 08 мая 2020

, приведя $valueToCheckFor к строке, это решило проблему:

if(strpos($db_result, (string) $valueToCheckFor) !== false) // do stuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...