PHP에서 변수 범위 지정에 문제가 있습니다. 다음은 내 코드의 구조입니다.PHP 변수 범위 지정
<?php
$loader = new ELLoad();
$sessionid = '';
$method = $_REQUEST['m'];
if (strcasecmp($method, "getfile") == 0) {
global $loader;
$loader->load($file['text']);
global $sessionid;
$sessionid = $loader->getSessionId();
}
if (strcasecmp($method, "extract") == 0) {
$extractor = new ELExtract();
global $sessionid;
$extractor->extract($sessionid); //$session id for some reason is still ' ' here
}
클라이언트의 요청 시퀀스에는 항상로드가 이어지고 추출됩니다. 누구나 내 $ sessionid 변수가 제대로 업데이트되지 않을 수 있다고 말할 수 있습니까?
'if' 문에서'global'을하지 않아도되고,'function' 호출 내에서만'global'을 사용할 필요가 없습니다. 그와'글로벌'은 나쁜 습관으로 간주됩니다. – Halcyon
처음에'global'을 사용하는 이유는 무엇입니까? 변수가 함수 내에 있지 않으면 변수가 전역 범위에 있습니다. –
여기에'global' 키워드를 사용할 필요가 없습니다. 이 키워드는 사용자가 예를 들어 안에있을 때 사용됩니다. '함수'. – hallaji