Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 整数被添加到数组中,而我不添加它_Php - Fatal编程技术网

Php 整数被添加到数组中,而我不添加它

Php 整数被添加到数组中,而我不添加它,php,Php,您好,我一直在尝试使用PHP开发一个RPN计算器,在程序中的某个点上,一个数字1不知从何处出现在我的数组中。我用调试器检查了该程序3次,但我不明白它来自何处。以下是我的代码: if(isset($_GET["send"])){ $v0 = $_GET["val0"]; $a = explode(" ", $v0); $second_array = array();

您好,我一直在尝试使用PHP开发一个RPN计算器,在程序中的某个点上,一个数字1不知从何处出现在我的数组中。我用调试器检查了该程序3次,但我不明白它来自何处。以下是我的代码:

          if(isset($_GET["send"])){
                $v0 = $_GET["val0"];
                $a = explode(" ", $v0);
                $second_array = array();

                function operatii($v , $second_array){
                    $var1 = array_pop($second_array);
                    $var2 = array_pop($second_array);
                    $rez = null;

                    switch ($v){
                        case '+':
                            $rez = $var1 + $var2;
                            break;
                        case '-':
                            $rez = $var2 - $var1;
                            break;
                        case '*':
                            $rez = $var1 * $var2;
                            break;
                        case '/':
                            $rez = $var2 / $var1;
                            break;
                    }

                    array_push($second_array, $rez);
                    print_r($second_array);
                    echo '<br/>';
                }

                for($i = 0; $i < count($a); $i++){
                    if($a[$i] === "+" || $a[$i] === "-" || $a[$i] === "*" || $a[$i] === "/" ){
                        operatii($a[$i] , $second_array);
                        continue;
                    }else{
                        array_push($second_array, $a[$i]);

                    }
                }
            }


        ?>

        <form method="get" action="">
            <input type="text" value="<?php  ?>" name="val1" disabled/>
            <input type="text" value="" name="val0" />
            <input type="submit" value="Introdu" name="send"/>
        </form> 
if(isset($\u GET[“send”])){
$v0=$_GET[“val0”];
$a=爆炸(“,$v0”);
$second_array=array();
函数运算符ii($v,$second\u数组){
$var1=array\u pop($second\u array);
$var2=array\u pop($second\u array);
$rez=null;
交换机($v){
格“+”:
$rez=$var1+$var2;
打破
案例'-':
$rez=$var2-$var1;
打破
案例“*”:
$rez=$var1*$var2;
打破
案例“/”:
$rez=$var2/$var1;
打破
}
数组推送($second\u数组,$rez);
打印(第二个数组);
回声“
”; } 对于($i=0;$i
数组缺少
&
,也可以将运算符保存在数组中

if (isset($_GET["send"])) {
    $_GET["val0"] = isset($_GET["val0"]) ? $_GET["val0"] : "";
    $a = explode(" ", $_GET["val0"]);
    $second_array = array();

    function operatii($v, &$second_array) {
        $var1 = array_pop($second_array);
        $var2 = array_pop($second_array);
        $rez = null;
        switch ($v) {
            case '+' :
                $rez = $var1 + $var2;
                break;
            case '-' :
                $rez = $var2 - $var1;
                break;
            case '*' :
                $rez = $var1 * $var2;
                break;
            case '/' :
                $rez = $var2 / $var1;
                break;
        }
        array_push($second_array, $rez);
        print_r($second_array);
        echo '<br/>';
    }

    $oprators = array("+","-","*","/");
    for($i = 0; $i < count($a); $i ++) {
        if (in_array($a[$i], $oprators)) {
            operatii($a[$i], $second_array);
            continue;
        } else {
            array_push($second_array, $a[$i]);
        }
    }
}
if(isset($\u GET[“send”])){
$\u GET[“val0”]=isset($\u GET[“val0”])?$\u GET[“val0”]:“”;
$a=爆炸(“,$”获取[“val0”]);
$second_array=array();
函数运算符II($v,&$second_数组){
$var1=array\u pop($second\u array);
$var2=array\u pop($second\u array);
$rez=null;
交换机($v){
格“+”:
$rez=$var1+$var2;
打破
案例'-':
$rez=$var2-$var1;
打破
案例“*”:
$rez=$var1*$var2;
打破
案例“/”:
$rez=$var2/$var1;
打破
}
数组推送($second\u数组,$rez);
打印(第二个数组);
回声“
”; } $oprators=数组(“+”、“-”、“*”、“/”); 对于($i=0;$i
您缺少数组
&
,也可以将运算符保存在数组中

if (isset($_GET["send"])) {
    $_GET["val0"] = isset($_GET["val0"]) ? $_GET["val0"] : "";
    $a = explode(" ", $_GET["val0"]);
    $second_array = array();

    function operatii($v, &$second_array) {
        $var1 = array_pop($second_array);
        $var2 = array_pop($second_array);
        $rez = null;
        switch ($v) {
            case '+' :
                $rez = $var1 + $var2;
                break;
            case '-' :
                $rez = $var2 - $var1;
                break;
            case '*' :
                $rez = $var1 * $var2;
                break;
            case '/' :
                $rez = $var2 / $var1;
                break;
        }
        array_push($second_array, $rez);
        print_r($second_array);
        echo '<br/>';
    }

    $oprators = array("+","-","*","/");
    for($i = 0; $i < count($a); $i ++) {
        if (in_array($a[$i], $oprators)) {
            operatii($a[$i], $second_array);
            continue;
        } else {
            array_push($second_array, $a[$i]);
        }
    }
}
if(isset($\u GET[“send”])){
$\u GET[“val0”]=isset($\u GET[“val0”])?$\u GET[“val0”]:“”;
$a=爆炸(“,$”获取[“val0”]);
$second_array=array();
函数运算符II($v,&$second_数组){
$var1=array\u pop($second\u array);
$var2=array\u pop($second\u array);
$rez=null;
交换机($v){
格“+”:
$rez=$var1+$var2;
打破
案例'-':
$rez=$var2-$var1;
打破
案例“*”:
$rez=$var1*$var2;
打破
案例“/”:
$rez=$var2/$var1;
打破
}
数组推送($second\u数组,$rez);
打印(第二个数组);
回声“
”; } $oprators=数组(“+”、“-”、“*”、“/”); 对于($i=0;$i
错误在于您将$second\u数组作为值传递,而不是作为引用传递。这意味着数组被复制,您在operatii函数中所做的任何更改都不会影响函数外的第二个数组。要做的就是改变

函数运算符($v,$second_数组){

函数运算符($v,&$second_数组){

有关此主题的更多信息:


错误在于您将$second\u数组作为值传递,而不是作为引用传递。这意味着数组将被复制,并且您在operatii函数中所做的任何更改都不会影响函数外部的第二个\u数组。要做的是更改

函数运算符($v,$second_数组){

函数运算符($v,&$second_数组){

有关此主题的更多信息:


是否应该将second\u数组作为引用传递,将istead作为值传递?是否应该将second\u数组作为引用传递,将istead作为值传递?