请教一个 PHP 代码出错的原因(一个简单的计算器)

2019-02-06 19:39:05 +08:00
 githere
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>a small calculate</title>
</head>
<body>

<form>

<input type="text" name="num1" placeholder="number 1">
<input type="text" name="num2" placeholder="number 2">
<select name="operator">
<option>None</option>
<option>Add</option>
<option>Subtract</option>
<option>Multiply</option>
<option>Divide</option>
</select>
<br>
<button name="submit" value="good submit" type="submit" >Calculate</button>


</form>

<p>the answer is:</p>

<?php

if(isset($_GET['submit'])){
$result1 = $_GET('num1');
$result2 = $_GET('num2');
$operator = $_GET('operator');

switch($operator){
case "None":
echo "Error,you need select a method.";
break;

case "Add":
echo $result1 + $result2;
break;

case "Subtract":
echo $result1 - $result2;
break;

case "Multiply":
echo $result1 * $result2;
break;

case "Divide":
echo $result1 / $result2;
break;

}

}

?>



</body>
</html>


运行后测试:文本框输入值后,点击 calculate 按钮返回错误:


Fatal error: Function name must be a string in /Applications/XAMPP/xamppfiles/htdocs/calculate.php on line 29

请问如何解决呢?

代码片段:

28 行 if(isset($_GET['submit'])){
29 行 $result1 = $_GET('num1');
30 行 $result2 = $_GET('num2');
31 行 $operator = $_GET('operator');
3495 次点击
所在节点    PHP
10 条回复
898684526
2019-02-06 19:45:04 +08:00
获取 get 参数应该是 [] 而不是()
caola
2019-02-06 19:45:06 +08:00
$_GET 获取的数据并不存在, 先判断是否存在: $result1 = $_GET('num1') ?? 0;
898684526
2019-02-06 19:45:36 +08:00
你从 29 行 $_GET('num1') 应该是 $_GET['num1'];
caola
2019-02-06 19:46:13 +08:00
确实是方括号问题(上面我直接复制了)
clf
2019-02-06 19:46:15 +08:00
$_GET['xxx'] 不是 $_GET('xxx')
githere
2019-02-06 19:57:12 +08:00
@898684526 @caola @lychs1998 感谢各位,我真是眼瞎啊!!
Hardrain
2019-02-06 20:59:23 +08:00
var_dump($_GET)可知其为数组,应使用$_GET['parameter']

$_POST $_SERVER $_COOKIE 等也是数组
orqzsf1
2019-02-06 21:02:32 +08:00
<select>
<option value ="volvo">Volvo</option>
<option value ="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
githere
2019-02-07 14:48:50 +08:00
@898684526 @caola @lychs1998 追问一下,请问如何理解这一行代码的意思:

if(isset($_GET['submit'])) {}
bzj
2019-02-08 17:54:42 +08:00
楼主把这里当百度知道了,基础不好不去学习,跑来这里问,习惯不好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/533220

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX