将值传递给函数php

时间:2018-03-26 07:41:34

标签: php function

function foo($bar) {
    $qux = strpos('abcdef', $bar);
    if ($qux) {
        $qux += 1;
    } else {
        $qux = -1;
    }
    return $qux;
}
$x = foo('abc');
$y = foo('def');

我有上述功能,我对如何回答以下问题感到困惑。我知道该函数将接受一个参数,然后使用它来检查它是否存在于字符串中然后将该值放入变量,因为在PHP中,true或false为1或0,或者根据找到的字符串递增或递减。登记/> 现在我对如何回答以下问题很困惑。

我只想知道如何回答以下问题。 示例$x is 1, $y is 4

$x = foo('abc');
$y = foo('def');

'abc'发现$qux的真值为1 plus 1 equals 2 then the function returns 2 $x will be 2

然后如何回答$x is 1, $y is 4

什么是$ x和$ y?

  1. $ x为1,$ y为4

  2. $ x为-1,$ y为4

  3. $ x为-1,$ y为5

  4. $ x为2,$ y为5

3 个答案:

答案 0 :(得分:2)

答案是-1和4。

原因是,abc位于0位置,如果将其检查为布尔值,则认为0为false

if ($qux) with $qux =0$qux = -1

对于def, $qux = 3. $qux > 0,所以$ qux为真所以$qux +=1所以$qux =4

答案 1 :(得分:1)

$x = foo('abc'); =>调用foo()并且该函数返回一个结果。

foo()

$qux = strpos('abcdef', $bar); // strpos() search for `abc` & will found it and results 0 because strpos() index start from 0.

if ($qux) {
$qux += 1; // here $qux = 0 + 1, which is 1
} else {
$qux = -1;
}
return $qux; // 1 returned to called function ie, $x.

所以$ x是1&类似地,$ y来自4

strpos()

的语法
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

strpos()函数查找第一次出现的字符串在另一个字符串中的位置。

注意strpos()功能区分大小写。

注意:此功能是二进制安全的。

<强>参数

<强>草堆     要搜索的字符串。

<强>针     如果needle不是字符串,则将其转换为整数并应用为字符的序数值。

<强>偏移     如果指定,搜索将从字符串的开头开始计算此字符数。如果偏移量为负数,则搜索将从字符串末尾开始计算此字符数。

要注意的要点是(并且可能会让你遇到麻烦):

strpos()从0开始计算位置而不是1

答案 2 :(得分:1)

对于这两种情况,strpos为0和3. 0为假ish,3为true-ish。所以$x = 0-1 = -1$y = 3+1 = 4