Установить минимальную длину пароля Firebase Email & Password Authentication

Сообщение об ошибке связано с неудачным фактом, что PHP неявно объявит неизвестный токен как константную строку с тем же именем.

То есть, он пытается интерпретировать это (обратите внимание на отсутствующие кавычки ):

$_POST[department]

Единственный допустимый способ использования этого синтаксиса в PHP заключается в том, что ранее существовала константа department. Так грустно, а не умирать с фатальной ошибкой на данный момент, оно выдает это Уведомление и действует так, как будто константа была определена с тем же именем и значением:

// Implicit declaration of constant called department with value 'department'
define('department', 'department');  

Существуют различные способы, которыми вы можете получить это сообщение об ошибке, но все они имеют одну и ту же причину - токен, который может быть константой.

Строки отсутствуют кавычки: $my_array[bad_key]

Это то, что проблема в вашем случае, и это потому, что у вас есть ключи массива строк, которые не были указаны. Исправление строковых ключей исправит ошибку:

Изменить:

$department = mysql_real_escape_string($_POST[department]);
...(etc)...

Кому:

$department = mysql_real_escape_string($_POST['department']);
...(etc)...

Переменная отсутствует знак доллара: var_without_dollar

Еще одна причина, по которой вы можете увидеть это сообщение об ошибке, - это оставить параметр $ от переменной или $this-> от члена. Например, любое из следующих может вызвать аналогичное сообщение об ошибке:

my_local;   // should be $my_local
my_member;  // should be $this->my_member

Недопустимый символ в имени переменной: $bad-variable-name

Аналогичная, но более тонкая проблема может возникнуть, если вы попытаетесь для использования запрещенного символа в имени переменной - дефис (-) вместо подчеркивания _ будет обычным случаем.

Например, это нормально, поскольку подчеркивания разрешено в именах переменных :

if (123 === $my_var) {
  do_something();
}

Но это не так:

if (123 === $my-var) {
  do_something();
}

Он будет интерпретироваться так же, как это:

if (123 === $my - var) {  // variable $my minus constant 'var'
  do_something();
}

Обращение к константе класса без указания класса scope

Чтобы ссылаться на константу класса, вам нужно указать область видимости класса с ::, если вы пропустите это, PHP будет думать вы говорите о глобальном define().

Например:

class MyClass {
  const MY_CONST = 123;

  public function my_method() {
    return self::MY_CONST;  // This is fine
  }


  public function my_method() {
    return MyClass::MY_CONST;  // This is fine
  }

  public function my_bad_method() {
    return MY_CONST;  // BUG - need to specify class scope
  }
}

Использование константы, которая не определена в этой версии PHP, или определена в расширении, которое не является установлен

Существуют некоторые системно-определенные константы, которые существуют только в более новых версиях PHP, например параметр режима константы для round() , такие как PHP_ROUND_HALF_DOWN, существуют только в PHP 5.3 или новее.

Итак, если вы попытались использовать эту функцию в PHP 5.2, скажите:

$rounded = round($my_var, 0, PHP_ROUND_HALF_DOWN);

Вы получите это сообщение об ошибке:

Использование неопределенной константы PHP_ROUND_HALF_DOWN - предполагается 'PHP_ROUND_HALF_DOWN' Предупреждение (2): Неверный параметр count для round ()

BLOCKQUOTE>

13
задан MrRoboto 30 March 2016 в 19:39
поделиться