PHP에서 데이터 캡슐화에 대한 기사를 읽었으며 작성자는 이것이 실제로 가능할 지 궁금해하게 만들었습니다. 여기 그가 말한 것이 있습니다.PHP에서 함수 내부에있는 로컬 변수의 값을 변경할 수 있습니까?
캡슐화 (범위)의 주요 목적은 파괴 할 수없는 코드를 작성할 수 있도록하는 것입니다. 숫자를 통과하고를 반환하려면이 함수의 목적은
function xyz ($x) {
$y = 1;
while ($y <= 10) {
$array[] = $y * $x;
$y++;
}
return $array;
}
:이 은 일반적으로 범위를 적용, 그래서 나 함수 내에서 로컬 변수의 간단한 예제를 사용 하자 정렬. 예제 코드는 매우 기본입니다. 함수 xyz()가 신뢰할 수있는 으로 정렬하려면 을 매번 정확하게 똑같은 것을 수행해야합니다. 그래서 누군가 외부에서 의 능력을 가지고 있다면 그 초기의 값은 $ y 또는 $ array로 바뀌었을까요? 심지어 $ x? 외부에서이 작업을 수행 할 수있는 경우 반환 기능을 더 이상 보장 할 수 없습니다.
이제 위의 설명처럼 인수를 사용하지 않고도 함수 내부에 앉아있는 지역 변수의 값을 변경할 수 있습니까? 가능하다면 어떻게해야합니까? 그들은 모든 함수의 내부에 선언하고 있기 때문에
, 당신은 변수를 변경 할 수 없을 것입니다 예를 들어
아니요, 인용 부호로 된 텍스트가 말하는 것과 정확히 같습니다. 그렇게 할 수 있다면 코드를 깨뜨릴 가능성이 높습니다. "그 기능이 무엇을 반환하는지 더 이상 보장 할 수 없습니다." – netcoder