$newid = 100;
$cin = 0;
function new_id() {
$cin++;
if ($cin >= 3) {
$cin = 0;
$newid++;
}
return $newid;
}
echo new_id();
new_id() は何も返していません。どうしたの?
$newid = 100;
$cin = 0;
function new_id() {
$cin++;
if ($cin >= 3) {
$cin = 0;
$newid++;
}
return $newid;
}
echo new_id();
new_id() は何も返していません。どうしたの?
変数のスコープについて学ぶ必要があります。パラメータとして渡さない限り (または のような悪意のあるものを使用しない限り$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;
}