我创建了一个什么都没有返回的函数?

时间:2013-02-07 02:24:57

标签: php

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

new_id()没有返回任何内容。发生了什么事?

1 个答案:

答案 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;
}