>  기사  >  백엔드 개발  >  PHP에서 값에 의한 할당과 참조에 의한 할당의 차이점은 무엇입니까?

PHP에서 값에 의한 할당과 참조에 의한 할당의 차이점은 무엇입니까?

伊谢尔伦
伊谢尔伦원래의
2017-07-17 16:41:562053검색

값별 할당: 표현식의 값을 변수에 할당하면 원래 표현식 전체의 값이 대상 변수에 할당됩니다. 즉, 예를 들어 한 변수의 값이 다른 변수에 할당된 동안 한 변수의 값을 변경해도 다른 변수에는 영향을 미치지 않습니다.

<?php 
$a=123; $a=123; 
$b=$a; $b=&$a; 
$a=321; $a=321; 
Echo”$a,$b”;//显示”321,123” Echo”$a,$b”;//显示”321,321” 
?>

참조 할당: 새 변수는 단순히 원래 변수를 참조합니다. 새 변수를 변경하면 원래 변수에 영향을 줍니다. 참조 할당을 사용하면 할당할 변수(소스 변수) 앞에 & 기호를 추가하기만 하면 됩니다. PHP는 변수 정의에 명시적인 유형 정의를 요구하거나 지원하지 않습니다. 변수 유형은 변수가 사용되는 컨텍스트에 따라 결정됩니다. 즉, var 변수에 문자열 값을 할당하면 var는 문자열이 됩니다. var에 정수 값을 할당하면 정수가 됩니다.
형변환
허용되는 형변환은 다음과 같습니다: (int), (integer) - 정수로 변환(bool), (boolean) - 부울(float)로 변환, (double), (real) - float로 변환 Point 유형(string) ) - 문자열로 변환(배열) - 배열(객체)로 변환 - 객체로 변환 유형 변환을 위한 Settype()
Function Settype()

<?php 
$foo = "5bar"; // string 
$bar = true; // boolean 
settype($foo, "integer"); // $foo 现在是 5 (integer) 
settype($bar, "string"); // $bar 现在是 "1" (string) 
?>

변수 범위 변수의 범위는 변수가 정의된 컨텍스트입니다( 즉, 유효 범위입니다.) 대부분의 PHP 변수에는 단일 범위만 있습니다. 이 단일 범위 범위에는 include 및 require에 의해 도입된 파일도 포함됩니다.

정적 변수 변수 범위의 또 다른 중요한 기능은 정적 변수입니다. 정적 변수는 로컬 함수 범위에만 존재하지만 프로그램 실행이 이 범위를 벗어나도 해당 값은 손실되지 않습니다.
Array PHP의 배열은 실제로 순서가 지정된 그래프입니다. 그래프는 값을 키에 매핑하는 유형입니다. 이 유형은 여러 가지 방법으로 최적화되어 있으므로 실제 배열이나 목록(벡터), 해시 테이블(그래프 구현), 사전, 세트, ​​스택, 큐 등으로 사용할 수 있습니다. 더 많은 가능성. 다른 PHP 배열을 값으로 사용할 수 있으므로 트리를 쉽게 시뮬레이션할 수도 있습니다.
배열 정의(Define array()) array() 언어 구조를 사용하여 새 배열을 만들 수 있습니다. 쉼표로 구분된 여러 키 => 값 매개변수 쌍을 허용합니다.
array( key => value , ... )
// 키는 정수 또는 문자열일 수 있습니다.
// 값은 임의의 값일 수 있습니다.

<?php // 现在删除其中的所有单元,但保持数组本身的结构 
// 创建一个简单的数组 foreach ($array as $i => $value) { 
$array = array(1, 2, 3, 4, 5); unset($array[$i]); 
print_r($array); } 
print_r($array); 
// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0) 
$array[] = 6; 
print_r($array); // 重新索引: 
$array = array_values($array); 
$array[] = 7; 
print_r($array); 
?>

unset() 함수를 사용하면 배열에서 키 이름을 설정 해제할 수 있습니다. 배열은 다시 색인화되지 않습니다.

아아아아

위 내용은 PHP에서 값에 의한 할당과 참조에 의한 할당의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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