【问题标题】:How to throw warnings in PHP?如何在 PHP 中抛出警告?
【发布时间】:2019-04-30 00:06:03
【问题描述】:

如果我们错过了什么,那是编译器产生警告的本质。无论如何我想忽略警告或摆脱在 php 程序中显示警告。

示例警告是:

错误、警告:PHP 注意:未定义变量:z in source_file.php 第 11 行

以下是显示警告的示例:我们如何忽略或抑制警告?

<?php
$x=4;
$y=3;
function func($x=3 ,$y=4)
{
    $z=$x+$y/$y+$x;
    echo '$z';
}
echo $x;
echo $y;
echo $z;
func($x,$y);
?>

【问题讨论】:

    标签: php undefined warnings code-snippets


    【解决方案1】:

    它试图告诉您z 不是从您尝试使用它的位置定义的。实际上,它只在函数func 中定义。查看scope of variables in PHP

    编辑: 问:如何清除警告? 答:您需要定义z 或禁止来自编译器的警告。我会强烈建议您定义它。下面的答案已经为您解决问题的代码提供了可能的替代方案。

    【讨论】:

    • 谢谢,但你能告诉我如何清除警告吗?
    • 检查我的答案
    【解决方案2】:

    变量 $z 在函数中声明时具有函数级别范围因此,您会收到该警告。 此外,无需将您的函数定义为

    function func($x=3 ,$y=4) {} // here you are limiting the function to perform calculation for only 3 and 4
    

    当您将值传递给函数时,因此将您的函数定义为

    function func($x ,$y){}
    

    并在您的代码中多次使用该函数。

    要达到您想要的结果,请尝试以下代码

    $x=4;
    $y=3;
    function func($x=3 ,$y=4)
    {
        return $x+$y/$y+$x;
    }
    echo $x;
    echo $y;
    $z = func($x,$y);
    echo $z;
    

    【讨论】:

    • 谢谢,但你能告诉我如何清除警告吗?
    • 您收到该警告是因为您尚未定义变量 $z。定义 $z 后,您将不会再收到该警告。
    【解决方案3】:

    因为你还没有定义 $z。正确的代码如下。

    <?php
    	$x=4;
    	$y=3;
    	$z="";
    	function func($x=3 ,$y=4){
    	    $z=$x+$y/$y+$x;
    	    echo $z;
    	}
    	echo $x;
    	echo $y;
    	echo $z;
    	func($x,$y);
    ?>

    【讨论】:

    • 谢谢,但你能告诉我如何清除警告吗?
    【解决方案4】:

    您在第 11 行打印 $z 变量,该变量未定义。 您已经定义了 $x 和 $y,但没有定义 $z。

    “func”函数中的 $z 仅存在于函数的范围内,而不存在于“main”脚本中。

    所以,我想这就是你想要做的:

    <?php
    
    function func($x=3 ,$y=4)
    {
        $z=$x+$y/$y+$x;
        return $z;
    }
    
    $x=4;
    $y=3;
    
    //Now $z is defined!
    $z = func($x,$y);
    
    echo $z;
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 2017-08-24
      • 1970-01-01
      • 2013-11-15
      • 2013-10-20
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多