Php 额外的0来自哪里

Php 额外的0来自哪里,php,function,Php,Function,我已经做了5年多的开发人员,但这似乎令人困惑和奇怪。我尝试使用两个函数,每个函数上都有echo。然后,我调用这些函数并再次响应。为什么下面的代码只显示5100而不是510?额外的0来自哪里 <?php function firstNum() { echo 5; } function secondNum() { echo 10; } echo firstNum() + secondNum(); //Output is 5100 您的代码正在回显5然后10然后是null加nul

我已经做了5年多的开发人员,但这似乎令人困惑和奇怪。我尝试使用两个函数,每个函数上都有echo。然后,我调用这些函数并再次响应。为什么下面的代码只显示5100而不是510?额外的0来自哪里

<?php

function firstNum()
{
  echo 5;
}

function secondNum()
{
  echo 10;
}

echo firstNum() + secondNum(); //Output is 5100

您的代码正在回显
5
然后
10
然后是
null
null
的总和

当不使用
返回时
php将从函数调用返回
null

你的意思是:()

您可以删除函数中的
echo
s,以便更好地了解返回的内容:()

输出:

NULL
NULL
0

好的老鸭子类型:
null+null='0'
。或者是
0
?我不确定你在问@TimMorton什么,当你使用
+
执行数学运算时,php会将null转换为数字
0
。所以,零加零的结果是数字(不是字符串)
0
。。。我想在javascript模式下:pTo output 510,我们应该使用一个点来代替:firstNum()。secondNum(),为了避免混淆,在进行数学运算之前,最好检查我们是否有整数,而不是其他东西,例如,@smzapp的例子是
intval
,也许我应该问一下您的预期结果是什么。你想把这些数字的和作为一个整数吗?或者您想要一个包含两个回显值的连接字符串?我的回答只是集中在“额外的0来自哪里?”。
function firstNum()
{
  //echo 5;
}

function secondNum()
{
  //echo 10;
}

var_export(firstNum());
echo "\n";
var_export(secondNum());
echo "\n";
var_export(null+null);
NULL
NULL
0