634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
1

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

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

Author24 — интернет-сервис помощи студентам
Есть ли простое решение? Итак есть текстовая переменная, которая является простым числом (почему не знаю, передаётся через форму в JavaScript). Как это простое число присвоить цифровой переменной?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2017, 21:43
Ответы с готовыми решениями:

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

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

Как сделать переменную с использованием в названии значения другой переменной?
Как осуществить так сказать использование значения переменной в названии другой переменной for...

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

9
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
12.01.2017, 22:03 2
Цитата Сообщение от atanov Посмотреть сообщение
Как это простое число присвоить цифровой переменной?
Никак. Имена переменных могут начинаться либо с _, либо с буквы латинского алфавита.
1
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
12.01.2017, 23:43 3
Пифагор, есть чуть-чуть извращение
PHP
1
2
${'2'} = 5;
var_dump(${'2'}); // int 5
Или так
PHP
1
2
3
$a = 2;
$$a = 5;
var_dump($$a); // int 5
1
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
12.01.2017, 23:46 4
Kerry_Jr, вот уж воистину извращение
1
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
12.01.2017, 23:57 5
Пифагор, еще у меня есть ощущение, что ТСу нужно всего-навсего конвертировать строку в число.
1
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
13.01.2017, 07:38  [ТС] 6
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 7
PHP
1
$a = (int) $a;
1
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
13.01.2017, 12:27  [ТС] 8
Оказалось, что не так просто, т.к. мигрирующая текстовая переменная, по-видимому, содержит не только цифру, а еще что-то. Помог костыль:

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 9
Лучший ответ Сообщение было отмечено atanov как решение

Решение

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

Ваш код можно просто записать так:
PHP
1
$Degreesql = (int) preg_replace("/[^0-6]/", '', $Degree);
И не надо никакой свитч.
1
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
14.01.2017, 12:25  [ТС] 10
Зверуш, спасибо, помогло.
Ну профи конечно знают, что именно из формы, нарисованной JavaScript, передаётся в скрипт обработчик. Я-то думал, что раз в php тип переменной явно не устанавливается, то и обработчик, получив введённую цифру посредством GetElementbyId и назначив значение этой цифры переменной, установит тип переменной integer. Горько ошибался. Если просто использовать int, то тип становиться NULL. Поэтому и потребовалось сначала извлечь цифирь с помощью preg_replace, а уже потом эту цифирь использовать.
0
14.01.2017, 12:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2017, 12:25
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru