我是一名PHP爱好者。
这个数组函数是我在阅读article时注意到的函数的改编。
我认为这是一种有趣的数组函数,但我对它的工作方式有疑问。
my_func( array( 'sky' => 'blue' ) );
function my_func( array $settings = array() )
{
$settings = $settings + array( 'grass'=>'green','sky'=>'dark' );
print_r( $settings ) ;
// outputs: Array ( [sky] => blue [grass] => green )
}
但.....................
my_func( array( 'sky' => 'blue' ) );
function my_func( array $settings = array() )
{
$settings = array( 'clock'=>'time' ) ;
$settings = $settings + array( 'grass'=>'green','sky'=>'dark' );
print_r( $settings ) ;
// outputs: Array ( [clock] => time [grass] => green [sky] => dark )
}
为什么[天空]在第二个实例中不等于'蓝色'?
感谢。
答案 0 :(得分:1)
$设置被第一行的clock = time覆盖。 sky = blue永远不会进入数组。
你将sky = blue作为$ settings传递给函数,但是然后在函数的第一行再次定义$ settings。
答案 1 :(得分:0)
my_func( array( 'sky' => 'blue' ) );
function my_func( array $settings = array() )
{
print_r($settings);// It will print Array ( [sky] => blue ) .After that it is over written
$settings = array( 'clock'=>'time' ) ;
$settings = $settings + array( 'grass'=>'green','sky'=>'dark' );
print_r( $settings ) ;
// outputs: Array ( [clock] => time [grass] => green [sky] => dark )
}