PHP Предупреждение: использование неопределенной константы ALTERNATE_WP_CRON [дубликат]

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

Lazy остановится, как только он встретит первый шаблон, который вы запросили.

Одним из распространенных примеров, с которыми я часто сталкиваюсь, является \s*-\s*? регулярного выражения ([0-9]{2}\s*-\s*?[0-9]{7})

. Первый \s* классифицируется как жадный из-за * и будет выглядеть как можно больше белых пробелов после того, как встречаются цифры, а затем найдите тире «-». Где второй \s*? является ленивым из-за присутствия *?, что означает, что он будет выглядеть первым символом пробела и останавливаться прямо там.

125
задан hakre 12 October 2012 в 20:45
поделиться

9 ответов

Вы должны указать свои ключи массива:

$department = mysql_real_escape_string($_POST['department']);
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$message = mysql_real_escape_string($_POST['message']);

Как есть, он искал константы, называемые department, name, email, message и т. д. Когда это происходит «Найти такую ​​константу, PHP (странно) интерпретирует ее как строку (« department »и т. д.). Очевидно, что это может легко сломаться, если вы позже определите такую ​​константу (хотя это плохой стиль, чтобы иметь строчные константы).

181
ответ дан tilz0R 24 August 2018 в 08:35
поделиться

вы, вероятно, забыли использовать "".

Например:

$_array[text] = $_var;

изменить на:

$_array["text"] = $_var;
4
ответ дан Ajeet Shah 24 August 2018 в 08:35
поделиться

Вы пропустили размещение одиночных кавычек вокруг ваших ключей массива:

$ _ POST [email]

должно быть:

$ _ POST ['email']

0
ответ дан Andrew Kozak 24 August 2018 в 08:35
поделиться

Правильный способ использования постпеременных переменных -

<?php

$department = $_POST['department'];

?>

Использовать одинарную кавычку (')

1
ответ дан Coding Mash 24 August 2018 в 08:35
поделиться

Вставить одинарные кавычки.

Пример

$department = mysql_real_escape_string($_POST['department']);
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$message = mysql_real_escape_string($_POST['message']); 
1
ответ дан Hackbal Teamz 24 August 2018 в 08:35
поделиться

Сообщение об ошибке связано с неудачным фактом, что 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 ()

67
ответ дан John Carter 24 August 2018 в 08:35
поделиться

Не уверен, что есть какая-либо разница с использованием воспламенителя кода, и я использую «» для имен, и он отлично работает.

$department = mysql_real_escape_string($_POST["department"]);
$name = mysql_real_escape_string($_POST["name"]);
$email = mysql_real_escape_string($_POST["email"]);
$message = mysql_real_escape_string($_POST["message"]);

приветствует

Хорхе.

0
ответ дан Jorge Vicente Mendoza 24 August 2018 в 08:35
поделиться
<?php 
  ${test}="test information";
  echo $test;
?>

Примечание: использование неопределенного теста констант - предполагаемый «тест» в D: \ xampp \ htdocs \ sp \ test \ envoirnmentVariables.php в тестовой информации по строке 3

1
ответ дан Nikos 24 August 2018 в 08:35
поделиться

Похоже, что предопределенные константы выборки ушли с расширением MySQL, поэтому нам нужно добавить их до первой функции ...

// Предполагаемые константы выборки

define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);

Я проверил и преуспел.

0
ответ дан Venkat 24 August 2018 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: