2010年1月12日火曜日

php 入れ子関数と変数の関係

phpのマニュアル等に基本的な事が書かれていないので、スクラッチにより仕様を確認した。


<?php

define( 'INTERNAL_FUNC_TESTCASE', 1 );

function hoge( &$a, $b ) {
if( INTERNAL_FUNC_TESTCASE == 1 ) {
function hoe() {
$a = $a . ' ' . $b;
}
hoe();
} else {
function hoe( &$a, $b ) {
$a = $a . ' ' . $b;
}
hoe( $a, $b );
}
}

$c = 'hello';
$d = 'world';

hoge( $c, $d );

echo $c;

?>


INTERNAL_FUNC_TESTCASE 1 では、'hello'

それ以外では、 'hello world'


変数のスコープは、関連が無いようだ。

0 件のコメント: