2013-06-27 2 views
0

이 스 니펫은 일반 PHP 웹 페이지로 실행될 때 예상대로 작동합니다.drupal에서 글로벌 작업 방법

<?php 
    $foo = 123; 

function whatever() 
{ 
    global $foo; 
    echo "FOO = $foo<br/>"; 
} 

whatever(); 
?> 

출력은

FOO = 123 

그러나 드루팔 기본 페이지에서 동일한 코드를 넣는 것은

FOO = 

PHP 분명히 노력이 출력을 제공하지만, 전역하지 않습니다. 저는 드루팔 (Drupal)의 멍청한 놈입니다.하지만 저는 PHP를 압니다. 나는이 문제를 봤지만 관련성이 없다고 판결했다.

왜 drupal에서 작동하지 않습니까? 어떻게 작동합니까? 제발 응답하지 마세요, 당신은 글로벌 사용해서는 안됩니다!

+0

어떻게이 코드를 Drupal 기본 페이지에 넣으시겠습니까? 이 코드로 모듈을 만들고 추가 했습니까? – user4035

+0

Drupal은 PHP로 작성되었으므로 전역을 사용하는 것을 막기 위해 아무 것도하지 않습니다. 드루팔 (Drupal)은 실제로 [전역을 광범위하게 사용]합니다 (https://api.drupal.org/api/drupal/globals/7). 나는 PHP 필터 (eval()을 사용하고 분명히 문제를 일으키는)에서 코드를 옮기고 이것이 문제가되지 않는 커스텀 모듈로 옮길 것을 제안한다. [Drupal 7 모듈 개발] (https://drupal.org/node/1849934) – Clive

+0

user4035를 참조하십시오. 콘텐트를 클릭하고 콘텐트 기본 페이지를 추가하고 PHP 코드에 텍스트 형식을 설정합니다. Clive, PHP 코드를 기본 페이지에 두는 것이 PHP를 실행하기 위해 eval()을 사용하고 있다는 것을 의미합니까? –

답변

1

추가 실험에 따르면 Drupal PHP 페이지의이 코드가 작동합니다.

첫 번째 "전역"문은 필요하지 않아야하지만 제대로 작동하는 것처럼 보입니다. 또한 처음 두 줄을

$GLOBAL ["foo"] = 123; 

으로 변경하고 있습니다.

희망이 있으면 도움이 될 것입니다.

+0

적어도 나를 위해 트릭을 했어. 드루팔 (Drupal 7). – joronimo