Добавление строки командной строки PHP - PullRequest
0 голосов
/ 02 сентября 2018

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

echo "Enter the first number: ";
$num1 = trim(fgets(STDIN));
// echo $num1;
echo "Enter the second number: ";
$num2 = trim(fgets(STDIN));
// echo $num2;
$z= $num1 + $num2;  

$a = "2";
$b = "2";

echo "Sum of the numbers: ".$z." - ".($a+$b); 

Если я предоставлю вход "2" для обоих чисел с терминала, результат будет нулевым. Результат будет выглядеть как Сумма чисел: 0 - 4 , Почему?

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Я сделал копировать вставить, кажется, работает.
но я думаю, что знаю вашу проблему, ваш ввод "2" - это с двойными кавычками?
когда я ставлю «2», я получаю тот же результат, что и вы.
Теперь, когда вы вводите «2» на входе, вы фактически получаете «\» 2 \ »« в коде, который, конечно, не число, так что обрезка может быть вашим решением:

echo "Enter the first number: ";
$num1 = trim(fgets(STDIN), '"');
// echo $num1;
echo "Enter the second number: ";
$num2 = trim(fgets(STDIN), '"');
// echo $num2;
$z= $num1 + $num2;

$a = "2";
$b = "2";

echo "Sum of the numbers: ".$z." - ".($a+$b);
0 голосов
/ 02 сентября 2018

Я думаю, что это проблема версии. Работает нормально для меня .. Я использую PHP 7.1

enter image description here

В любом случае, попробуйте,

<?php
echo "Enter the first number: ";
$num1 = trim(fgets(STDIN));
// echo $num1;
echo "Enter the second number: ";
$num2 = trim(fgets(STDIN));
// echo $num2;
$z= (int) $num1 + (int) $num2;  

$a = 2;
$b = 2;

echo "Sum of the numbers: ".$z." - ".($a+$b); 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...