当您拥有与普通全局变量相同的名称时,请小心处理$_SESSION数组元素。
以下示例会导致$wppa数组元素的行为不可预测,有些被普通代码更新,有些没有,完全无法预测会发生什么。
<?php
global $wppa;
$wppa = array( 'elm1' => 'value1', 'elm2' => 'value2', ....etc...);
if ( ! session_id() ) @ session_start();
if ( ! isset($_SESSION['wppa']) $_SESSION['wppa'] = array();
if ( ! isset($_SESSION['wppa']['album']) ) $_SESSION['wppa']['album'] = array();
$_SESSION['wppa']['album'][1234] = 1;
$wppa['elm1'] = 'newvalue1';
print_r($_SESSION);
?>
这很可能会显示 Array ( [wppa] => Array ( [album] => Array ( [1234] => 1 ) [elm1] => 'newvalue1' [elm2] => 'value2' ... etc ...
但是将$wppa['elm1']设置为另一个值或引用它会产生不可预测的结果,可能是'value1'或'newvalue1'。
最奇怪的行为是并非所有$wppa[xx]的元素都显示为$_SESSION['wppa'][xx]。