2015-01-29 6 views
-1

Я пытаюсь создать новую переменную с помощью двух предыдущих переменных в сумме:расчет PHP с двумя переменными

$newseats = $origseats - $requiredseats; 
$newskis = $origskis - $skis; 

Однако, это не работает, и я не уверен, что с этим делать. Если я заменю любую из переменных в сумме цифрой, например:

$newseats = $origseats - 1; 

будет работать.

Кто-нибудь знает, почему это происходит?

+2

Пожалуйста, сделайте 'var_dump ($ variable);' с каждой переменной и сообщите нам, что такое результат, поэтому мы видим, какой вход вы используете. Также укажите 'not working', вы получаете какие-либо ошибки? Является ли результат 42 или что? – Rizier123

+1

Я очень рекомендую выяснить, что такое '$ requiredseats',' $ skis' и т. Д. На самом деле, используя что-то вроде ['var_export()'] (http://php.net/manual/en/function.var-export. php) или ['var_dump()'] (http://php.net/manual/en/function.var-dump.php) – serakfalcon

+0

@ Rizier123 не работает Я имею в виду, что новая переменная, например $ newseats, пуста, если он пытается распечатать переменную, ничего не появится. – kernick1996

ответ

0

Я подозреваю, что переменные могут быть строками. Если вы добавляете/вычитаете число из/в строку, оно преобразуется, но если вы делаете это на 2 строки, это не так.

Чтобы обойти это, преобразуйте значения с помощью intval, чтобы получить результат с целым числом «число», с которым вы можете работать. Скорее всего, лучше сделать это, когда вы устанавливаете эти переменные в первый раз.

$newseats = intval($origseats) - intval($requiredseats); 
$newskis = intval($origskis) - intval($skis); 
+0

он также работает для строк. try 'echo" 101 "-" 98 ";' Однако 'intval()' не повредит. – dognose

Смежные вопросы