찾다

 >  Q&A  >  본문

PHP 코드 블록 사이의 변수 범위

저는 (아직도) PHP를 처음 접하고 계속해서 배우고 있습니다.

특정 변수를 검색하고 해당 속성에 액세스해야 하는 경우가 많습니다.

으아악

저는 $user_info = get_userdata($id);한 번 검색하고 필요할 때 사용하는 것을 선호합니다. 동일한 파일에 있지만 다른 <?php?>블록

에 있음 으아악

하지만 $user_info는 전역적이지 않기 때문에 블록 간에 공유할 수 없는 것 같습니다. 일반적인 접근 방식은 무엇입니까?

P粉403821740P粉403821740418일 전737

모든 응답(2)나는 대답할 것이다

  • P粉713846879

    P粉7138468792023-10-23 13:15:37

    블록(루프, if 문) 내부에서는 사용할 수 있지만 함수 내부에서는 사용할 수 없습니다. 함수 내에서 작동하게 하려면 global 키워드를 사용해야 합니다:

    으아아아

    공식 문서에서 PHP 변수 범위에 대한 자세한 내용을 읽을 수 있습니다 :)< /a>

    회신하다
    0
  • P粉262926195

    P粉2629261952023-10-23 09:09:44

    PHP 코드 블록에 너무 많은 의미를 부여하고 있습니다.
    이것은 세계적인 일이 아닙니다.
    이 블록은 동일한 PHP 스크립트에 속합니다. 이는 단지 HTML을 출력하는 영리한 방법일 뿐입니다. 아무런 차이 없이 echo HTML로 대체할 수 있습니다.

    전체 PHP 스크립트는 반복적으로 실행되는 것이 아니라 한 번에 실행됩니다. 서버 측에서 실행되는 PHP 청크, 클라이언트 측에서 실행되는 HTML 청크, 다시 서버 측의 PHP 청크로 돌아갑니다. 등. 이것은 잘못된 것입니다.
    전체 PHP 스크립트는 서버 측에서 실행되고 브라우저에서 일반 HTML을 생성한 다음 사라집니다.

    이것이 동일한 PHP 스크립트에서 HTML 양식과 해당 핸들러를 모두 프로그래밍할 수 없는 이유입니다. 전자 뒤에 후자를 배치하면 됩니다. 핸들러가 제대로 작동하려면 서버를 다시 호출해야 합니다. 이것은 완전히 또 다른 호출, 동일한 스크립트의 또 다른 인스턴스가 될 것이며, 오래전에 죽은 이전 호출에 대해 아무 것도 모르는입니다. PHP에 대해 알아야 할 또 다른 사항은 다음과 같습니다.

    PHP 스크립트 실행은 원자적입니다. 이는 브라우저에서 지속적으로 실행되는 데스크톱 애플리케이션이나 데스크톱 애플리케이션에 지속적으로 연결되는 데몬과도 다릅니다. 이는 명령줄 유틸리티와 비슷합니다. 작업을 수행하고 종료됩니다. 독립적으로 실행됩니다:

    1. 브라우저가 전화를 겁니다
    2. PHP가 깨어나서 HTML 페이지를 생성하고 이를 브라우저로 보낸 다음그런 다음 종료됩니다
    3. 브라우저는 이 HTML을 렌더링하여 사용자에게 표시합니다.
    4. 사용자가 링크를 클릭합니다
    5. 브라우저가 전화를 겁니다
    6. 이전 호출을 인식하지 못한 또 다른 PHP 인스턴스가 깨어납니다

    회신하다
    0
  • 취소회신하다