$newid = 100;
$cin = 0;
function new_id() {
$cin++;
if ($cin >= 3) {
$cin = 0;
$newid++;
}
return $newid;
}
echo new_id();
new_id()没有返回任何内容。发生了什么事?
答案 0 :(得分:5)
您需要了解variable scope。 $newid
和$cin
不可用于new_id
,除非您将其作为参数传递(或使用global
等恶意内容):
手册中的完美示例:
<?php
$a = 1; /* global scope */
function test()
{
echo $a; /* reference to local scope variable */
}
test();
?>
此脚本不会产生任何输出,因为echo语句引用$ a变量的本地版本,并且尚未在此范围内为其分配值。
至于你的代码:
$newid = 100;
$cin = 0;
function new_id($newid, $cin) {
$cin++;
if ($cin >= 3) {
$cin = 0;
$newid++;
}
return $newid;
}