PHP函数属性调用计数


PHP function property call count?

我多次调用这个函数,传递额外的参数$case,告诉我这个函数调用了多少次:

function check($chars,$case=1){
    $charNums = array(
        "a" => "2",
        "b" => "22",
        "c" => "222",
        "d" => "3",
        "e" => "33",
        "f" => "333",
        "g" => "4",
        "h" => "44",
        "i" => "444",
        "j" => "5",
        "k" => "55",
        "l" => "555",
        "m" => "6",
        "n" => "66",
        "o" => "666",
        "p" => "7",
        "q" => "77",
        "r" => "777",
        "s" => "7777",
        "t" => "8",
        "u" => "88",
        "v" => "888",
        "w" => "9",
        "x" => "99",
        "y" => "999",
        "z" => "9999",
        " " => "0",
    );
    echo "Case #{$case}: ";
    for($i=0;$i<strlen($chars);$i++){
        if($prevChar == $charNums[$chars[$i]][0]) echo " ";
        echo $charNums[$chars[$i]];
        $prevChar = $charNums[$chars[$i]][0];
    }
    echo "<br>";
}

我想让这个函数计算自己被调用了多少次。为了节省额外的参数成本,每个javascript函数都有自己的默认属性。

使用静态变量:

function check($chars){
  static $count = 0;
  ++$count;
  // TODO: your implementation here
  return $count;
}

如果您已经将返回值用于其他目的,则可以将函数包装在类中:

class Checker {
  public static $count = 0;
  public static function check($chars) {
    ++self::$count;
    // TODO: your implementation here
    return $whatever;
  }
}

您没有声明

prevChar美元

用于匹配for循环…

如果(prevChar = = charNums美元($字符[$ i]][0])回声";

使用这个

for($i=0;$i<strlen($chars);$i++){
        $prevChar = $chars[$i];
        if($prevChar == $charNums[$chars[$i]][0]) echo " ";
        echo $charNums[$chars[$i]];
        $prevChar = $charNums[$chars[$i]][0];
    }