函数返回许多通知

时间:2014-10-10 13:40:04

标签: php string function parameters var

首先,我的技能水平充其量只是一个霍比特人 - 相比大多数人(如果不是全部的话),我是一个新人。

我正在尝试制作一个函数,如果没有给出参数/值,将返回单个<br />,否则将返回尽可能多的<br />个标签,因为值$num等于。

我正在尝试将此功能创建为:

A)了解如何创建功能

B)我讨厌输入<br />

C)这是我想出的一个对我感兴趣的功能的想法。

因此,理想情况下,在我的代码中,如果键入getBrT(),它将返回一个<br />标记,如果我输入getBrT(1),它也会返回一个<br /> }标记,但如果键入getBrT(5),则会返回五个<br />标记。

当我输入getBrT()时,它不能像我希望的那样工作。我总是要把价值搞砸吗?我在PHP的限制范围内试图做不到的事情吗?

这是我建立它的功能:

function getBrT2($num){
    //if num equals 'nothing', 1 break - easier to call/type in code repeatedly
    if ($num = ''){
        echo '<br /';
    }else{
        //if num equals 'something', breaks equal value
        $i = 0; // initialize counter
        while ($i < $num) {
            echo '<br />'; // increment the counter
            $i++;}
        }           
    }   

1 个答案:

答案 0 :(得分:3)

要确保在没有值传递给函数时这是有效的,请设置默认值。

function getBrT2($num = 1) {             // default value is 1
    $num = (int) $num;                   // cast num to integer
    if ($num < 1) {                      // if num is 0 or negative make it 1
        $num = 1;  
    }
    return str_repeat('<br/>', $num);    // echo out as many <br/> as requested
}
echo getBrT2(1);       // prints out "<br/>"
echo getBrT2(5);       // prints out "<br/><br/><br/><br/><br/>"
echo getBrT2();        // prints out "<br/>"
echo getBrT2('');      // prints out "<br/>"
echo getBrT2('hello'); // prints out "<br/>"

我对你的功能做了一些改进。

  • 除了默认值,我将传递给整数的值,因为这是我们需要使用的。任何不以数字开头的字符串值都将转换为0
  • 然后我们会检查$num0还是负数。如果是这样,我们将其1
  • 然后我们使用str_repeat()根据需要创建尽可能多的<br/>代码。
  • 然后我们返回该字符串,以便它可以回显。