PHP 참조

WBOY
WBOY원래의
2024-08-29 12:49:001118검색

PHP 참조는 하나의 변수 내용에 다른 이름으로 액세스할 수 있는 기호 테이블 별칭입니다. 명시적으로 정의된 참조 변수 앞에는 앰퍼샌드(&) 기호가 와야 합니다. PHP 참조의 기능은 Window의 단축키에 비유하여 설명할 수 있습니다. PHP 참조는 PHP 프로그래밍에서 다양한 방법으로 정의할 수 있습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

PHP 참조 생성 방법

PHP 참조를 생성하는 데 가장 많이 사용되는 방법은 다음과 같습니다.

1. '글로벌' 키워드 사용

메서드에서 참조 변수 앞에 'global' 키워드를 사용하여 참조를 생성할 수 있습니다. 참조를 전역 변수로 선언하면 변수가 $GLOBAL 배열에 추가되고 사용자가 함수 범위 내에서 전역 변수에 액세스할 수 있습니다. 기본적으로 PHP 참조를 다음과 같은 전역 변수로 선언하여 정의할 수 있는 두 가지 방법이 있습니다.

function Function_name() {
global $globalVar;
}
OR
function Function_name() {
$globalVar =& $GLOBALS["globalVar"];
}

아래 코드 조각은 로컬 범위와 전역 범위에 대해 동일한 변수 값의 차이점을 보여주기 위해 설계되었습니다.

<?php
function functionname() {
$inputvar = "within function scope";
echo '$inputvar in global scope: ' . $GLOBALS["inputvar"] . "\n";
echo '$inputvar in current scope: ' . $inputvar . "\n";
}
$inputvar = "Outside function scope";
$othervar= $GLOBALS["inputvar"]; //Creating inputvar in GLOBAL array
functionname();
echo '$othervar : ' . $othervar . "\n";
?>

출력

Othervar는 GLOBAL 배열의 inputvar에 대해 설정된 참조입니다. 함수의 로컬 범위에 정의된 inputvar 변수에 바인딩되지 않습니다.

PHP 참조

2. $이 변수 사용

'$this' 변수는 함수에 대한 객체에 대한 기본 참조이며, 그 중 $this 변수가 참조됩니다.

아래 코드는 선택한 클래스 객체의 모든 클래스 속성 값에 액세스하기 위해 $this 변수를 사용하는 방법을 보여줍니다.

<?php
class Thisclass {
var $clsproperty = 300;
function classmethod() {
$this->clsproperty = 500; // $this is a reference to the object
}
}
$clsObject = new Thisclass();
$clsObject->classmethod();
echo "The displayed value is: ". $clsObject->clsproperty;
//display the value updated using $this property
?>

출력

$this 변수를 사용하여 설정한 값을 기준으로 clsproperty의 값이 표시됩니다.

PHP 참조

3. 객체 전달

PHP 프로그래밍에서 할당, 반환 또는 전달 등과 같이 클래스 객체에 수행되는 모든 작업입니다. 작업은 항상 복사본 대신 개체를 참조하여 수행됩니다.

PHP 객체 참조를 생성하는 표준 구문은 다음과 같습니다.

class ClassName {
//Body of the class
}
$classObj1 = new ClassName ();
$classObj2= $classObj1;

여기서 classObj2 객체는 classObj1에 포함된 동일한 콘텐츠를 참조합니다.

아래 코드 조각은 실제 개체에 대한 참조 개체를 생성하고 해당 속성에 액세스하도록 설계되었습니다.

<?php
class Costume {
// Declaring the class properties
public $name;
public $color;
// Declaring the class methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
//Creating the object
$constume1 = new Costume();
$constume1->set_name('Superman');
$constume1->set_color('Blue and Red');
//Creating the object reference
$constume2=$constume1;
echo "Costume1 Name: " . $constume1->get_name();
echo "\n";
echo "Costume1 Color: " .  $constume1->get_color();
echo "\n";
echo "\n";
echo "Costume2 Name: " . $constume2->get_name();
echo "\n";
echo "Costume2 Color: " .  $constume2->get_color();
?>

출력

참조 개체인 Costume2는 실제 개체인 Costume1의 속성 이름 및 색상에 포함된 것과 동일한 값을 참조합니다.

PHP 참조

PHP 프로그래밍의 다양한 작업

PHP 프로그래밍에서는 PHP 참조를 통해 다양한 작업이 수행됩니다. 주요 작업 중 일부는 아래 세션에서 논의됩니다.

1. 참조로 전달

함수가 범위 밖에서 정의된 변수를 수정할 수 있도록 하려면 값을 참조로 함수에 전달해야 합니다.

아래 코드 조각은 변수에 대한 참조를 사용하여 호출된 함수의 범위를 벗어나 정의된 변수의 값을 변경합니다.

<?php
function Afunction(&$input) //passing the input argument by reference
{
$input*=10;
}
$outVar=5;
echo "Before the function is called: ".$outVar;
echo "\n";
Afunction($outVar);
echo "After the function is called: ".$outVar;
?>

출력

outvar 변수의 값은 AFunction() 함수에 의해 변경됩니다.

PHP 참조

2. 참고자료 반환

이 작업을 통해 호출 함수는 참조가 바인딩될 변수를 찾을 수 있습니다. 기술적인 요구 사항이 있는 경우에만 사용하는 것이 좋습니다. 그렇지 않으면 프로그램 성능에 추가되지 않습니다.

아래 코드 조각은 함수 상위 함수의 반환 값을 정의된 클래스 상위 클래스에 대한 참조로 전달하도록 설계되었습니다.

<?php
class parentclass {
public $parentvar = "I am set at parent class";
public function &parentfunction()
{
return $this->parentvar;
}
}
$parentobj = new parentclass;
$newvar = &$parentobj->parentfunction();
echo $newvar;
echo "\n";
$parentobj->parentvar= "I am set outside of the class";
echo $newvar;
?>

출력

PHP 참조

3. PHP 참조 설정 해제

사용자는 unset() 메소드를 사용하여 변수와 참조 사이의 바인딩을 끊을 수 있습니다.

아래 코드 조각은 unset() 메서드를 사용하여 참조 변수 firstinput을 secondinput에서 바인딩 해제하는 방법을 보여줍니다.

<?php
$firstinput = "I am first input";
$secondinput =& $firstinput;
echo "First input: ". $firstinput;
echo"\n";
echo "Second input: " . $secondinput;
unset($firstinput);
echo"\n";
echo"\n";
echo "After unsetting the reference: ";
echo"\n";
$firstinput = "I am set to second input";
echo"\n";
echo "First input: ". $firstinput;
echo"\n";
echo "Second input: " . $secondinput;
?>

출력

PHP 참조

결론

PHP 참조는 PHP 스크립팅에 통합된 중요한 기능입니다. PHP 참조는 중복 요소를 생성하기 위해 메모리를 차지하는 'C'에 대해 설명될 수 있으므로 포인터가 아닙니다. 오히려 PHP 참조는 실제 변수의 내용을 참조하는 다른 별칭입니다. PHP에서 객체에 대한 객체 복사가 필요한 경우 'clone' 키워드를 사용하여 수행할 수 있습니다.

위 내용은 PHP 참조의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP gettype()다음 기사:PHP gettype()