0
간단한 질문 - 다른 사람의 코드와 작업 중이므로 내가 작업중인 코드 이외의 코드를 수정하면 업데이트 가능성이 떨어질 수 있습니다. 초기화가 함수 내부의 'global'키워드와 함축되어 있는지 궁금합니다. 즉에 .... 나는 그들이 사용되는 기본 범위 변수를 초기화하는 것을 선호PHP 전역 범위 및 변수 초기화
// some code
$foo = ""; // any initialization value
function myFunc() {
global $foo;
}
// other code
// some code
function myFunc() {
global $foo;
}
// other code
합리적으로 비슷한 ...하지만, 언급 한 바와 같이, 그에 나를 필요 이 경우 외부 코드를 변경하십시오.
좋아요,하지만 이미 그렇게 많이 추측했습니다. 둘은 본질적으로 동등한가, 그렇지 않은가? 예를 들어 $ foo = ""가 첫 번째 예제의 함수 안에 있다고 상상해보십시오. – Scott
내가보기에는이 오래된 코드가 아직 evals를 사용하여 PHP에서 지원되지 않는 물건을 만들려고하고 있다는 점에서 문제가 있습니다. 우리는 그 (것)들을 제거하는 과정에있다, 그러나 큰 일이다. 이 경우, 'eval'd 부분은 함수 호출에 랩핑됩니다. 따라서 추가 함수를 추가하고 'global'을 넣으면 전역 범위 함수에 액세스하지만 동일한 변수에 다른 전역 참조를 추가하지 않으면 eval 된 코드가 사용되지 않습니다. 내 질문은 이것이 어떤 두통을 일으킬 지 여부입니다. 결국 우리는 모든 쓰레기를 찢을 것이지만, 그 동안 나는 할 수있는 한 최선을 다해야합니다. – Scott
함수에서 할당을 수행하면 전역 변수에 할당됩니다. 필요한 경우 변수를 만듭니다. 그러나 글로벌 선언만으로는 변수를 만들 수 없습니다. – Barmar