我多次调用这个函数,传递额外的参数$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];
}