명언이란 무엇인가
PHP에서의 참조는 Unix의 파일 이름 및 파일 자체와 유사하게 동일한 변수 내용이 다른 변수 이름으로 액세스됨을 의미합니다(변수 이름은 디렉토리 항목이고 변수 내용은 파일 자체입니다. , 동일한 파일이 다른 디렉토리 항목으로 액세스됨)은 Unix 파일 시스템에서 하드 링크로 간주될 수 있습니다.
파일 시스템에는 두 가지 유형의 링크가 있는데, 하나는 하드 링크라고 하고 다른 하나는 심볼릭 링크라고 합니다. 기본적으로 ln 명령은 하드 링크를 생성합니다. 하드 연결은 인덱스 노드를 통한 연결을 의미합니다. Linux 파일 시스템에서 디스크 파티션에 저장된 파일에는 유형에 관계없이 인덱스 노드 번호(InodeIndex)라는 번호가 할당됩니다. Linux에는 동일한 인덱스 노드를 가리키는 여러 파일 이름이 존재합니다. 일반적으로 이 연결은 하드 연결입니다. 하드 링크의 기능은 파일이 여러 개의 유효한 경로 이름을 갖도록 허용하여 사용자가 "실수로 인한 삭제"를 방지하기 위해 중요한 파일에 대한 하드 링크를 설정할 수 있도록 하는 것입니다. 그 이유는 위에서 언급한 바와 같습니다. 디렉터리의 인덱스 노드에 대한 연결이 두 개 이상 있기 때문입니다. 하나의 연결만 삭제해도 인덱스 노드 자체와 다른 연결에는 영향을 미치지 않습니다. 마지막 연결이 삭제된 경우에만 파일의 데이터 블록과 디렉터리 연결이 해제됩니다. 즉, 파일이 실제로 삭제됩니다. 하드 연결에 대응하여 Lnux 시스템에는 심볼릭 링크(Symbilc Link), 소프트 링크라고도 하는 또 다른 연결이 있습니다. 소프트 링크 파일은 Windows 바로 가기와 다소 유사합니다. 실제로는 일종의 특수 파일입니다. 심볼릭 링크에서 파일은 실제로 다른 파일의 위치 정보가 포함된 텍스트 파일입니다.
인용문은 주로 세 가지 용도로 사용됩니다.
동일한 내용을 가리킵니다
인용은 두 변수가 동일한 내용을 가리킬 수 있도록 허용합니다(예: $a = & $b
). 이는 $a
과 $b
가 동일한 변수를 가리킨다는 의미입니다.
정의되지 않은 변수가 참조로 할당되거나, 참조로 전달되거나, 참조로 반환되면 해당 변수가 자동으로 생성됩니다. 예를 들어, 다음 프로그램은 $a
변수를 자동으로 생성합니다.
<code>function foo(&$var) {} foo($a);</code>
PHP 5부터 new
연산자는 자동으로 참조를 반환합니다.
참조로 전달
참조에 의한 변수 전달은 다음 코드를 통해 수행할 수 있습니다. foo
함수의 $var
변수는 $a
이 가리키는 것과 동일한 내용을 가리킵니다. .
<code><?php function foo(&$var) { $var++; } $a = 1; foo($a); echo $a;</code>
함수 정의에는 참조 기호 &
만 있고 함수 호출 시 참조 기호 &
는 없습니다.
참고로 반품
참조를 반환하려면 다음 구문을 사용하세요.
<code><?php class foo { public $value = 42; public function & getValue() { return $this->value; } } $obj = new foo; $myValue = & $obj->getValue(); $obj->value = 2; echo $myValue;</code>
참조에 의한 반환은 매개변수 전달과 다릅니다. &
기호는 함수 정의와 함수 호출 모두에 사용됩니다(일반적인 복사본 대신 참조가 반환됨을 나타냄).
인용 해제
unset()
이 참조인 경우 변수 이름과 변수 내용 간의 바인딩은 끊어질 뿐이고 변수 내용은 삭제되지 않습니다.
참조 위치 지정
많은 PHP 구문 구조는 global
참조 및 $this
포인터와 같은 참조 메커니즘을 통해 구현됩니다.
global $var
으로 변수를 선언하면 실제로 $var = & $GLOBALS['var']
과 동일한 효과를 갖는 전역 변수에 대한 참조가 설정됩니다. 객체 메서드에서 $this
는 항상 이를 호출하는 객체에 대한 참조입니다.
(전문 종료)
위 내용은 참고자료를 소개한 것입니다 - PHP 매뉴얼 노트와 내용의 측면을 포함하여, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.