如何在php中使用未定义的变量在函数中回显/打印?

如何在php中使用未定义的变量在函数中回显/打印?,php,Php,我并不擅长php,但目前我正在努力学习。我可以在函数外很好地打印,但我收到的具体说明要求我在函数内打印结果。我试过了 回声“$区域”; 回声“calculatearea()” 我已经搜索过了,但仍然不知道如何在函数内部获得打印,而只是在函数外部 <?php if (isset($_POST['CalcBT'])) { global $area; function calculateCircumference () { $n

我并不擅长php,但目前我正在努力学习。我可以在函数外很好地打印,但我收到的具体说明要求我在函数内打印结果。我试过了

回声“$区域”; 回声“calculatearea()”

我已经搜索过了,但仍然不知道如何在函数内部获得打印,而只是在函数外部

<?php

if (isset($_POST['CalcBT'])) {
    global $area;
            function calculateCircumference () {
                 $num1 = ($_POST['Length']);
                 $num2 = ($_POST['Width']);

                $circ = $num1 + $num2;
                return $circ;


                }

                function calculateArea () {
                    $num1 = ($_POST['Length']);
                    $num2 = ($_POST['Width']);

                    $area = 2*($num1 + $num2);
                    return $area;

                }
    echo "Your rectangle circumference is: " . calculateCircumference() . '<br />' . "Your rectangle area is: " . calculateArea();
}

?>

<!---------------- Form---------------->

    <div class="form">

        <h3></h3>

        <form action="PHP-sida4.php" method="POST">
            <p>Length: <input type="text" name="Length"value=""></p>
            <p>Width: <input type="text" name="Width"value=""></p>

            <input type="submit" name="CalcBT" value="Calculate">
        </form>

长度:

宽度:


我需要$area的返回值以及我在底部的回音,以便在第一个函数中实际打印(CalculateCircumReference)

好的,如果我答对了你的问题,需要返回区域和一些其他文本以及区域

让我们从一些房屋清理开始,因此可以将
$area
全局变量重命名为类似
$results
的其他变量,它将是一个数组或对象。简单地说

使用关联数组,例如:

$results = [
    'area' => null,
    'text' = null
];
因此,在调用echo之前,您将从计算函数更新
$results['area']
,并更新
$results['text']
,因此可能会将回显文本提取到另一个变量

现在,您可以使用区域和文本访问文件中的任意位置$results:

要在
CalculateArea()
函数下更具表现力,请执行以下操作:

$results['area'] = $area;

回显文本也是如此。

您可以在函数中使用
echo
而不是
return
。要调用它们,只需使用
function()无任何其他关键字:

function calculateCircumference () {
    $num1 = ($_POST['Length']);
    $num2 = ($_POST['Width']);

    $circ = $num1 + $num2;
    echo $circ;
}

function calculateArea () {
    $num1 = ($_POST['Length']);
    $num2 = ($_POST['Width']);

    $area = 2*($num1 + $num2);
    echo $area;
}

echo "Your rectangle circumference is: " ;
calculateCircumference() ;
echo '<br />' ;
echo "Your rectangle area is: " ;
calculateArea();
函数计算循环引用(){
$num1=($_POST['Length']);
$num2=($_POST['Width']);
$circ=$num1+$num2;
echo$circ;
}
函数calculateArea(){
$num1=($_POST['Length']);
$num2=($_POST['Width']);
$area=2*($num1+$num2);
回声区;
}
回声“你的矩形周长是:”;
CalculateCircumReference();
回声“
”; echo“您的矩形区域是:”; 计算earea();
您可以在函数中回显所需的任何内容,但在调用函数之前,它不会显示

<?php

 if (isset($_POST['CalcBT'])) {
   global $area;
   function calculateCircumference () {
    $num1 = ($_POST['Length']);
    $num2 = ($_POST['Width']);

    $circ = $num1 + $num2;

    // return $circ;
    echo "Your rectangle circumference is: " . $circ . '<br />' . "Your rectangle area is: " . calculateArea();
    return;

  }

  function calculateArea () {
    $num1 = ($_POST['Length']);
    $num2 = ($_POST['Width']);

    $area = 2*($num1 + $num2);
    return $area;

  }

  calculateCircumference();
}

?>


我希望这有帮助

您可以在任何地方
回显
任何内容,无论是函数内部还是外部。如果
echo
未执行,则可能是出现错误,或者可以找到
echo
的行未执行


在我们的例子中,您已经删除了函数后面的
echo
,这恰好是调用它们的唯一位置。

$area
作为参数传递给函数:
函数calculateArea($area){…}
@FelippeDuarte你如何将一个值传递给一个计算该值的函数?@FelippeDuarte对此有点困惑,因为它是同一个东西不?他正在使用
global$area
,我想他已经在某个地方有了它。`$num1=$\u POST['Length']??如果没有在没有任何警告的情况下定义,0`会将$num1设置为0。omfg。。。那奏效了,我觉得自己太傻了。非常感谢你的帮助!那你能接受我的回答吗?