Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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_Function_While Loop - Fatal编程技术网

检查匹配数字的PHP函数

检查匹配数字的PHP函数,php,function,while-loop,Php,Function,While Loop,我目前正在自学web开发/编程,为了学习php,我编写了一个简单的程序。该程序接受用户输入,基于一系列数学算法,计算出7个随机彩票号码。代码运行良好,但我想改进它。代码非常重复,我想通过创建自己的函数来简化它。我创建了第一个函数,它接受用户输入,简单地做一些数学运算,然后返回一些值 例如 <?php function some_maths($int1 $int2 $int3){ $x = $int1 + $int2; $y = $int

我目前正在自学web开发/编程,为了学习php,我编写了一个简单的程序。该程序接受用户输入,基于一系列数学算法,计算出7个随机彩票号码。代码运行良好,但我想改进它。代码非常重复,我想通过创建自己的函数来简化它。我创建了第一个函数,它接受用户输入,简单地做一些数学运算,然后返回一些值

例如

<?php 

     function some_maths($int1 $int2 $int3){

         $x = $int1 + $int2; 
         $y = $int2 * $int3; 
         $z = $y * $x; 
         return $x
         ....}

你的问题有点模糊,但如果我必须编写一个函数来检查三个数字是否不相等,是否<59和>1,我会这样做

function validateNumbers($x , $y , $z)
{
    if(equal($x,$y)) return false;
    if(equal($x,$z)) return false;
    if(equal($y,$z)) return false;
    if($x>59||$x<1) return false;
    if($y>59||$y<1) return false;
    if($z>59||$z<1) return false;
    return true;
}

function equal($x , $y)
{
    if($x == $y)return true;
    else return fasle;
}
函数验证枚举($x,$y,$z)
{
如果(等于($x,$y))返回false;
如果(等于($x,$z))返回false;
如果(等于($y,$z))返回false;
如果($x>59 | |$x59 | | |$y59 | |$z),到目前为止,我只看到两件事(非常简单):

  • 第一个示例中的函数原型在参数之间缺少逗号。与其使用
    函数some\u math($int1$int2$int3)
    ,不如使用
    函数some\u math($int1,$int2,$int3)

  • 在第二个示例中,缺少一个结束语
    }
    。但是如果我正确地解释了您的内容,那么外部的
    if
    -子句是多余的。因此,代码段可以简化为:

  • 第二个例子:

    while($x == $y || $x == $z || $x <1 || $x >59){
        if (x<1){
            do{ $x+=$int}while($x <1);
        }
        elseif ($x > 59){
            do{ $x-=$int}while($x >59); 
        }
        else $x++;     
    }
    
    while($x==y | |$x==z | |$x59){
    if(x59);
    }
    else$x++;
    }
    

    可能还有更大的改进空间(例如,缩小外部while循环的条件)-但为此,我们需要更多的上下文(在循环之前发生了什么,what is
    $int
    ,…).

    这不是我的实际代码,只是一个例子。我在原型函数中有很多变量,很酷,但我检查了三个以上的数字!我总共有8个变量,每个变量基本上都是一个乐透球,所以它们不能等于或>59或<1。从你对两个答案的评论来看,到目前为止,我很想投你的反对票问题,因为我不清楚您对我们的实际期望。所以请澄清和/或提出更具建设性的意见。
    while($x == $y || $x == $z || $x <1 || $x >59){
        if (x<1){
            do{ $x+=$int}while($x <1);
        }
        elseif ($x > 59){
            do{ $x-=$int}while($x >59); 
        }
        else $x++;     
    }