【发布时间】:2010-12-31 02:50:47
【问题描述】:
我是 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 )
}
为什么在第二种情况下 [sky] 不等于 'blue'?
谢谢。
【问题讨论】:
-
这里有趣的是,如果你不覆盖
$settings,那么尽管@987654325,sky 无论如何都会是blue @。令人惊讶的PHP!那最好值得一个问题!