Baton
Новичок
Здравствуйте, уважаемые!
Возникла потребность получить доступ к суперглобальным переменным с помощью символьной ссылки внутри функции. Но что-то пошло не так:
Проверим выражение из функции скопировав его в глобальную область видимости:
Работает!
А может $_SERVER[ 'REQUEST_METHOD' ] чем-то не угодил? Проверим без него, жестко прописав имена суперглобальных переменных:
Выходит, что внутри функции ( или метода ) не получается символьно получить доступ к суперглобальным переменным, тогда как в глобальной области видимости проблемы не наблюдается.
Это баг или фишка?
Возникла потребность получить доступ к суперглобальным переменным с помощью символьной ссылки внутри функции. Но что-то пошло не так:
PHP:
function f(){
echo isset( ${ '_'.$_SERVER[ 'REQUEST_METHOD' ] } ) ? 1 : 0; //0
}
f();
PHP:
echo isset( ${ '_'.$_SERVER[ 'REQUEST_METHOD' ] } ) ? 1 : 0; //1
А может $_SERVER[ 'REQUEST_METHOD' ] чем-то не угодил? Проверим без него, жестко прописав имена суперглобальных переменных:
PHP:
function f(){
$name = '_GET';
echo isset( $$name ) ? 1 : 0; //0
$name = '_POST';
echo isset( $$name ) ? 1 : 0; //0
$name = '_COOKIE';
echo isset( $$name ) ? 1 : 0; //0
}
f();
$name = '_GET';
echo isset( $$name ) ? 1 : 0; //1
$name = '_POST';
echo isset( $$name ) ? 1 : 0; //1
$name = '_COOKIE';
echo isset( $$name ) ? 1 : 0; //1
Это баг или фишка?