-1
$newid = 100;
$cin = 0;
function new_id() {
    $cin++;
    if ($cin >= 3) {
        $cin = 0;
        $newid++;
    }
    return $newid;
}
echo new_id();

new_id() 没有返回任何内容。这是怎么回事?

4

1 回答 1

5

您需要了解变量范围$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;
}
于 2013-02-07T02:26:26.867 回答