Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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 if else语句性能方面的最差情况 功能象限($x,$y){ 如果($x>=0&$y>=0) $result=“点($x,$y)位于第一个量子点”; 如果($x=0),则为else $result=“点($x,$y)位于第二个量子点”; 否则如果($x=0)_Php - Fatal编程技术网

PHP if else语句性能方面的最差情况 功能象限($x,$y){ 如果($x>=0&$y>=0) $result=“点($x,$y)位于第一个量子点”; 如果($x=0),则为else $result=“点($x,$y)位于第二个量子点”; 否则如果($x=0)

PHP if else语句性能方面的最差情况 功能象限($x,$y){ 如果($x>=0&$y>=0) $result=“点($x,$y)位于第一个量子点”; 如果($x=0),则为else $result=“点($x,$y)位于第二个量子点”; 否则如果($x=0),php,Php,在性能方面最差的$x或$y值是多少?进行了多少次比较 就性能而言,$x或$y的价值是多少?进行了多少比较?这只是一个计数的问题 最佳情况:x和y均为非负。2个比较($x>=0和$y>=0) 最坏情况:x为非负,y为负。6比较。这是因为,如果第一条语句已经是false,php将停止在&&处,因为无论第二条语句返回什么,结果都不可能是true。因此,第二个和第三个if将在$xh之后停止计算您需要运行此函数多少次?如果少于数万次,差异是可以忽略的。(找出这一点的最可靠的方法可能是自己测试它,使用您拥有

在性能方面最差的$x或$y值是多少?进行了多少次比较


就性能而言,$x或$y的价值是多少?进行了多少比较?

这只是一个计数的问题

最佳情况:x和y均为非负。2个比较(
$x>=0
$y>=0


最坏情况:x为非负,y为负。6比较。这是因为,如果第一条语句已经是
false
,php将停止在
&&
处,因为无论第二条语句返回什么,结果都不可能是
true
。因此,第二个和第三个
if
将在
$xh之后停止计算您需要运行此函数多少次?如果少于数万次,差异是可以忽略的。(找出这一点的最可靠的方法可能是自己测试它,使用您拥有的不同案例)需要更多信息。你的问题似乎不完整。这个问题可能是他的老师提出的,因为他理解这个问题。我没有:)对于提供的代码,它是8(即使最后一个
else if
可以被一个简单的“else”替换@Asenar:php在
&
处停止,如果第一条语句已经是
false
,因为无论第二条语句返回什么,结果都不可能是
true
。因此,第二条和第三条
if
将在
$x@Asenar:这也意味着如果他确实删除了最后一个
if
如果只剩下
else
,最坏的情况将是5。顺便说一下,此功能通常用于缩短分支:
someBoolean&&trueFunction();
相当于
if(someBoolean)trueFunction();
,而
someBoolean | false function();
相当于
if(!someBoolean)false function());
,后者主要用于捕获“错误”,其中某些函数在出现错误时只返回false,并将错误处理留给程序员。你是对的,对不起,我忘记了只检查第一个条件的事实。我建议你在回答中加上这一点;)
function quadrant($x,$y) {

if( $x >= 0 && $y >= 0 )
    $result = "point ($x,$y) lies in the First quandrant";
else if( $x < 0 && $y >= 0)
    $result = "point ($x,$y) lies in the Second quandrant";
else if( $x < 0 && $y < 0)
    $result = "point ($x,$y) lies in the Third quandrant";
else if( $x >= 0 && $y < 0)
    $result = "point ($x,$y) lies in the Fourth quandrant";

return $result;

}

$x=1;
$y=1;
$q = quadrant($x,$y);
function quadrant($x,$y) {

    if( $x >= 0 ) {
        if( $y >= 0)
            return "point ($x,$y) lies in the First quandrant";
        else
            return "point ($x,$y) lies in the Fourth quandrant";
    }
    else if( $y >= 0)
        return "point ($x,$y) lies in the Second quandrant";
    else
        return "point ($x,$y) lies in the Third quandrant";

}