【发布时间】:2021-02-02 07:16:08
【问题描述】:
我是 PHP 和一般编码的新手。 目前我正在尝试制作一个简单的计算器。 为此,我有两个脚本calculator.php 和array.php 我的想法是将用户提供的所有输入存储在一个数组中,以便我可以使用 eval() 函数计算它们。因为我需要一个字符串,所以我使用 foreach 循环转换了数组。 但是当我尝试在 foreach 循环之外使用变量时,出现以下错误:
注意:第 17 行的数组到字符串的转换 大批 解析错误:语法错误,意外的 ';',在 /Applications/XAMPP/xamppfiles/htdocs/dashboard/array.php(22) 中需要 '(' : eval()'d code on line 1
我可以做些什么来解决这个问题?
array.php
<?php
session_start();
if (!is_array($_SESSION)) {
$_SESSION['persistentValues'] = array();
}
if (isset($_POST['button'])) {
$_SESSION['persistentValues'][] = $_POST['button'];
}
foreach ($_SESSION as $value) {
echo $value;
}
if (isset($_POST["result"])) {
$p = eval($value.";");
echo $p;
}
?>
calculator.php
<?php
include ('./array.php');
?>
<div style="padding-left:40px">
<h2> PHP Calculator</h2>
<form method="post" action="">
Enter value: <input type="text" name="value"> <br> <br>
<div style="padding-left: 105px">
<input type="submit" value="9" name="button">
<input type="submit" value="8" name="button">
<input type="submit" value="7" name="button">
<input type="submit" value="+" name="button">
<br>
<input type="submit" value="6" name="button">
<input type="submit" value="5" name="button">
<input type="submit" value="4" name="button">
<input type="submit" value="-" name="button" style="padding-left: 9px">
<br>
<input type="submit" value="3" name="button">
<input type="submit" value="2" name="button">
<input type="submit" value="1" name="button">
<input type="submit" value="/" name="button" style="padding-left: 9px">
<br>
<input type="submit" value="0" name="button" style="padding-left:33px">
<input type="submit" value="." name="button" style="padding-right:9px">
<input type="submit" value="x" name="button" style="padding-left: 7px">
<br>
</div>
<br>
<input type="submit" value="Calculate" name="result">
</form>
</div>
【问题讨论】:
-
我想你想要
foreach ($_SESSION['persistentValues'] as $value) -
而
if (!is_array($_SESSION))也应该是if (!is_array($_SESSION['persistentValues'])) -
@Barmar 当我使用它时,数组会显示,但我收到错误通知:未定义的索引:persistentValues 警告:为 foreach() 提供的参数无效注意:未定义的变量:值
-
@Barmar 这修复了错误。当我现在加载页面时,我可以输入我的数字,但是当我点击计算时,eval 函数仍然没有输出。