Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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 for($i =0, $x = 100 ; $i<1; $i++){ echo $x . 'y' . $i+1 . ' = '. $i*$x . ' <br>'; } ?> 我的预期输出是:100 y 1=0 但实际结果是:101=0 “你”去哪儿了 比+具有更多的运算符优先级 echo $x . 'y' . $i+1 = 101 因为它将作为 echo ($x . "y"

代码如下:

 <?php 

      for($i =0, $x = 100 ; $i<1; $i++){

      echo $x .  'y' . $i+1 . ' = '. $i*$x . ' <br>';
      }

    ?>

我的预期输出是:100 y 1=0

但实际结果是:101=0

“你”去哪儿了


+
具有更多的运算符优先级

echo $x .  'y' . $i+1 = 101
因为它将作为

echo ($x .  "y" . $i)+1 ;
事情就是这样

$x3=  ($x .  "y" . $i); //100y0
$u = $x3+1 ;  //101
您正在对字符串执行
+
操作。因此,任何字符前的第一个数字将作为整数值

例如:

通过执行算术运算,解释器将字符串转换为整数,
将丢弃所有其他字符。因此,
100y+1=101
它不会是
101y

如上所述(Subin Thomas)回答:将1与varchar值相加,如100y0,将1与100相加(整数的第一次出现)。以下代码将按预期工作

<?php 

  for($i =0 ,$x = 100; $i<1; $i++){

  echo $x .  'y' . ($i+1) . ' = '. $i*$x . ' <br>';
  }

?>

要测试:

<?php 

  for($i =0, $x = 100 ; $i<1; $i++){

  echo $x .  'y' . ($i+1) . ' = '. $i*$x . ' <br>';
  }

?>


您的代码中没有错误,您的输出将是:100 y 1=0错误。输出为101=0。你可以检查一下,我想你应该预料到
100y1=0
!!打字错误。对不起。@回答正确的人$x3=100y0;然后在$x3中加上+1,变成101。。非常令人困惑。。100y0+1=101?好的,我能理解你说的。100y0+1=101。。。好的为什么答案是101而不是101y y y到哪里去了?好的,在这个+运算符旁边,编译器应该在101之后有writer y。。我就是这么说的。是你说的吗。。编译器将丢弃所有其他字符,因为它将字符串转换为整数。。。。现在可以了,谢谢你的记录:)伙计,你完全正确。但同样,如果不在($i+1)周围加括号,那么为什么它会变成101=0$x=100。当它加上$i+1=1,然后加上100y+1时,y将把它合并为100y。它将取第一个出现的整数,即100+1=101。好的,正如你所说的,它将取第一个出现的整数,好的,那么y到哪里去了?你使用的是+运算符。这将接受它前面的任何字符,因为整数y不是整数,所以它会删除“y”。。但是如果我们不放括号呢。。只需对实际答案进行解释..看看帖子#56。。。
<?php 

  for($i =0, $x = 100 ; $i<1; $i++){

  echo $x .  'y' . ($i+1) . ' = '. $i*$x . ' <br>';
  }

?>