Я получаю сообщение об ошибке:PHP Примечание: Undefined переменной, но определяется
Notice: Undefined variable: string in common_yyyymmdd_is_valid() (line 933 of XXXXXX/common/common.module).
Оно определено. Вот код:
if (!array_key_exists('exception_date', $exceptions)) {
// Blah
}
elseif (!common_yyyymmdd_is_valid($exceptions['exception_date'])) {
// Blah
}
elseif (!common_date_is_future($exceptions['exception_date'])) {
// Blah
}
Это заявление elseif
. Если я прокомментирую это, второй не даст мне такую же ошибку, несмотря на использование той же переменной.
function common_yyyymmdd_is_valid($string) {
watchdog('TEST','string: ' . $string);
933 return (bool) preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $string);
}
function common_date_is_future($string) {
$date = new DateTime($string);
$now = new DateTime();
if($date < $now) {
return FALSE;
}
return TRUE;
}
Я не понимаю, почему это не определено. Наблюдатель показывает мне строку, которую я отправляю.
опубликуйте полную ошибку здесь –
'string' является зарезервированным словом в PHP. Вы не можете использовать его как имя переменной. –
@HoboSapiens Хорошо быстрая проверка доказала бы, что утверждение ** неверно **. _ Эти слова не могут использоваться для обозначения класса, интерфейса или признака. Эти слова также запрещены для использования в пространствах имен. См. [Руководство] (http://php.net/manual/en/reserved.other-reserved-words.php) Использование в переменных ОК – RiggsFolly