Intereting Posts
Regex заменить слово, если оно не заключено в скобки сортировать списки, результаты поиска и т. д. Отправка данных через завиток в указанном формате? Symfony 2 – Тип формы формы: как отформатировать сгенерированный раскрывающийся список? Как загрузить путь и имя изображения в базу данных – Codeigniter Ошибка Yii Framework / PDO Ошибка CDbCommand не выполнила инструкцию SQL: SQLSTATE В чем проблема с этим ajax (с прототипом)? почему данные приложенной строки не отображались после отправки? php – как изменить iframe разные src каждые 5 секунд Удалить имя подпапки с сайта WordPress с помощью htaccess Почему использование подготовленного оператора mysql более безопасно, чем использование общих функций эвакуации? изменение локального ключа реестра с помощью PHP TCPDF очень медленное поколение динамического арабского PDF Не удалось перенаправить старый URL-адрес PHP на новую страницу ASP Эффективно обнаружить поврежденный файл jpeg?

Почему переменная не может начинаться с номера?

Я работаю на PHP, я должен определить переменные в последовательности, чтобы сохранить в Mysql. И имя поля, и имя переменной должны быть одинаковыми в моем случае.

Могу ли я объявить такую ​​переменную

$1 OR $2 etc 

Если нет, то почему нет и если да, то почему?

Я пытался:

 $id = 0; $6 = $_REQUEST['6']; $7 = $_REQUEST['7']; $8 = $_REQUEST['8']; $xary = array('6','7','8','9') $oAppl->save_record("tablename", $id, "id"); 

которые дают мне ошибку.

Также можно создавать и использовать поля в Mysql с тем же именем?

Related of "Почему переменная не может начинаться с номера?"

Именно так был разработан PHP. Вы не можете запустить имя переменной с номером.

Что вы можете сделать, это использовать подчеркивание:

 $_6 = $_REQUEST['6']; 

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

Но давайте представим, что переменные, начинающиеся с чисел, разрешены.

Можете ли вы представить себе коллегу, говорящего вам: 23 равно 74? Это немного запутанно. Слушание n23 равно 74 имеет больше смысла. Вы знаете, что n23 – это переменная без явного указания этого.

Да, вы можете объявлять переменные в PHP, которые начинаются с числа:

 ${'1'} = 'hello'; 

Это объявляет переменную с именем переменной "1" в PHP.

Чтобы получить доступ к нему, вам нужно снова использовать синтаксис привязки:

 echo ${'1'}; 

Это необходимо, потому что в PHP-коде дословно вы не можете писать:

 echo $1; 

Это даст синтаксическую ошибку.


Также можно создавать и использовать поля в Mysql с тем же именем?

Да, вы можете, он работает аналогично PHP. В Mysql вам также нужно указать идентификатор номера для столбца, котировка отличается:

 mysql> create table test (`0` INT); mysql> describe test; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | 0 | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 

Здесь используются обратные элементы (по умолчанию конфигурация Mysql). Как руководство по PHP, так и руководство Mysql объясняют детали этого, также есть много связанных вопросов с цитированием идентификаторов как для PHP, так и для Mysql на веб-сайте Stackoverflow.

Хорошо подумайте об этом:

 $2d = 42; $a = 2d; 

Что такое? 2,0? или 42?

Подсказка, если вы не получите ее, d после числа означает номер, прежде чем он станет двойным литералом

Трудно однозначно определить, является ли числовой символ в модуле компиляции литералом или идентификатором.

Языки, где пространство незначителен (например, ALGOL и оригинальный FORTRAN, если я правильно помню), не могли принимать номера, чтобы начинать идентификаторы по этой причине.

Это идет назад – перед специальными обозначениями обозначить память или числовую базу.

Для более подробного обсуждения. Почему имена переменных не начинаются с цифр?

Это не имеет смысла. Но вы все равно можете использовать динамические имена переменных.

 <?php $name = 1; $ $name = 'name'; // $ 1 = 'name'; // the same, but syntax not allowed var_dump($ $name); // value of $1 var_dump(${$name}); var_dump($$name); 

Вы не можете определить, какая переменная начинается с численных значений в PHP. Взгляните на приведенную ниже ссылку. Он содержит основы определения переменных.

Переменные PHP – основы

Это своего рода наследие, начиная с ранее разработанных языков, таких как C, Fortran и т. Д. Также некоторые языки сценария оболочки имеют специальные средства для идентификаторов, начинающихся с цифры, а именно входных параметров. Стандарты PHP просто решили соблюдать это общее правило.

Как говорится в документации по php , вы не можете:

основы

Переменные в PHP представлены знаком доллара, за которым следует имя переменной. Имя переменной чувствительно к регистру.

Имена переменных следуют тем же правилам, что и другие метки в PHP. Правильное имя переменной начинается с буквы или подчеркивания , за которой следует любое количество букв, цифр или символов подчеркивания.

В качестве регулярного выражения оно выражается следующим образом: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Что касается MySQL, в документации говорится:

Идентификаторы могут начинаться с цифры, но если цитируемый текст не может состоять только из цифр.

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

 $_1 = $_REQUEST['1']; 

или

 $str1 = $_REQUEST['1']; 

То, что вы также можете сделать, это использовать массив:

 $retrievedValuesFromDB = array(); $retrievedValuesFromDB['1'] = $_REQUEST['1']; 

Таким образом, вы можете прокручивать оба одновременно:

 $i=1; while ($i<mysql_num_rows()) { $retrievedValuesFromDB[$i] = $_REQUEST[$i]; $i++; }