Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674

Цифра в текстовой переменной - как сделать цифровую переменную

12.01.2017, 21:43. Показов 2556. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ли простое решение? Итак есть текстовая переменная, которая является простым числом (почему не знаю, передаётся через форму в JavaScript). Как это простое число присвоить цифровой переменной?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2017, 21:43
Ответы с готовыми решениями:

Как из переменной окружения сделать обычную переменную?
В общем, такая ситуация: нужно переменную окружения PATH сделать обычной переменной. Каким образом это можно сделать?

Как поменять значение числовой переменной в зависимости от значения текстовой переменной
Доброго вам времени суток! Ломаю голову на следующей задачей, и не знаю, где ошибка: может быть в JS или в html коде. Не могу...

Как сделать переменную с использованием в названии значения другой переменной?
Как осуществить так сказать использование значения переменной в названии другой переменной for (int i = 1; i <= 3; i++) { ...

9
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
12.01.2017, 22:03
Цитата Сообщение от atanov Посмотреть сообщение
Как это простое число присвоить цифровой переменной?
Никак. Имена переменных могут начинаться либо с _, либо с буквы латинского алфавита.
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
12.01.2017, 23:43
Пифагор, есть чуть-чуть извращение
PHP
1
2
${'2'} = 5;
var_dump(${'2'}); // int 5
Или так
PHP
1
2
3
$a = 2;
$$a = 5;
var_dump($$a); // int 5
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
12.01.2017, 23:46
Kerry_Jr, вот уж воистину извращение
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
12.01.2017, 23:57
Пифагор, еще у меня есть ощущение, что ТСу нужно всего-навсего конвертировать строку в число.
1
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
13.01.2017, 07:38  [ТС]
Kerry Jr, Пифагор, спасибо.
Наверно я не совсем правильно сформулировал вопрос. В текстовой переменной хранится число, простое, а именно 1, 2, 3, 4, 5, 6 или 7. Нужно получить это число числом, чтобы оно правильно записывалось sql. Если попытаться его записать как есть, т.е. текстовой, то ожидаемо записывается "0", т.к. в базе MSQL, это поле INT.
P.S. Конечно есть case is, но вдруг есть элегантное решение.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
13.01.2017, 11:50
PHP
1
$a = (int) $a;
1
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
13.01.2017, 12:27  [ТС]
Оказалось, что не так просто, т.к. мигрирующая текстовая переменная, по-видимому, содержит не только цифру, а еще что-то. Помог костыль:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$Degree = preg_replace("/[^0-6]/", '', $Degree);
switch ("$Degree") { 
       case 1: $Degreesql = 1;
       break;
       case 2: $Degreesql = 2;
       break;
       case 3: $Degreesql = 3;
       break;
       case 4: $Degreesql = 4;
       break;
       case 5: $Degreesql = 5;
       break;
       case 6: $Degreesql = 6;
       break;
       }
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
13.01.2017, 12:50
Лучший ответ Сообщение было отмечено atanov как решение

Решение

Какой-то индусский код получился.
Цитата Сообщение от atanov Посмотреть сообщение
содержит не только цифру, а еще что-то
Что же она еще содержит? Вы не знаете? Как так? Вы сами не знаете что делает ваша программа? Вы должны четко ее контролировать. Все значения должны быть ожидаемыми.

Ваш код можно просто записать так:
PHP
1
$Degreesql = (int) preg_replace("/[^0-6]/", '', $Degree);
И не надо никакой свитч.
1
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
14.01.2017, 12:25  [ТС]
Зверуш, спасибо, помогло.
Ну профи конечно знают, что именно из формы, нарисованной JavaScript, передаётся в скрипт обработчик. Я-то думал, что раз в php тип переменной явно не устанавливается, то и обработчик, получив введённую цифру посредством GetElementbyId и назначив значение этой цифры переменной, установит тип переменной integer. Горько ошибался. Если просто использовать int, то тип становиться NULL. Поэтому и потребовалось сначала извлечь цифирь с помощью preg_replace, а уже потом эту цифирь использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2017, 12:25
Помогаю со студенческими работами здесь

Как на основе того что лежит в переменной сделать переменную в объекте?
1. Ну есть у нас переменная string arg1 = "MyVar"; string arg2 = "propereties"; и потом можно было обратится через объект ...

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

Как можно сделать цифровую подпись файла (SSL сертификат)?
Как можно сделать цифровую подпись файла (SSL сертификат)? Существуют ли способы изготовления SSL?

Калькулятор: Сделать так, чтобы при нажатии на знак равно в переменную записывалась цифра 1 раз
Здравствуйте, помогите пожалуйста сделать так чтобы при нажатии на знак равно в переменную записывалась цифра 1 раз, т. е. при нажатии...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru