> 백엔드 개발 > PHP 튜토리얼 > PHP가 약한 유형이고 배우기 쉽다고 말하는 이유는 무엇입니까?

PHP가 약한 유형이고 배우기 쉽다고 말하는 이유는 무엇입니까?

怪我咯
풀어 주다: 2023-03-10 15:12:01
원래의
1473명이 탐색했습니다.

저는 "PHP의 힘은 자명합니다."라고 말하고 싶습니다. 편집자는 이 칼럼이 어떤 언어를 비교하지 않는다고 선언합니다. 이 칼럼은 PHP 언어의 본질과 저처럼 PHP를 배우는 친구들과의 경험에만 초점을 맞췄습니다. 편집자는 PHP 전문가가 아니며, 저는 단지 PHP의 충성스러운 팬일 뿐입니다. 관심이 있으시면 나와 함께 PHP에 대해 이야기하고 경험을 공유하실 수 있습니다.

어제 누군가가 저에게 약한 타이핑이 무엇인지 물었습니다. 세 번이나 강조했지만 설명하지 않았습니다. 오늘은 약한 타이핑이 무엇인지, 약한 타이핑의 장점과 단점에 대해 설명하겠습니다. 편집자가 PHP가 매우 강력하다고 생각하는 이유는 PHP가 개발자가 사용할 수 있는 많은 고유한 기능을 제공하기 때문입니다. 그 중 하나가 PHP 약한 유형 메커니즘입니다.

먼저 예제를 살펴보겠습니다. 약한 유형은 다음 작업을 수행할 수 있습니다.

예제 1:

<?Php
$iruohong = 1; //整数型
$iruohong = array(); //数组型
$iruohong = “iruohong.com”; //字符串型
?>
로그인 후 복사

프로그래밍 경험이 있는 친구는 이 코드를 통해 약한 유형의 개념을 이해할 것입니다. 그 징후 중 하나는 PHP 커널 개발자가 선언이 필요하지 않은 이 시스템을 통해 개발자의 개발 효율성을 향상시키고자 한다는 것입니다.

그러나 이 메커니즘은 몇 가지 문제를 가져올 것입니다. 예를 들어, 개발자가 주의를 기울이지 않으면 다음 비교 중 일부는 개발자에게 문제를 가져올 것입니다.

예 2:

<?Php
$a = null; $b = false;
If($a == $b){
echo “a和b相等!”;
}else{
echo “a和b不相等!”;
}
?>
로그인 후 복사
<?Php
$a = &#39;&#39;; $b = 0; //同样为真
If($a == $b){
echo “a和b相等!”;
}else{
echo “a和b不相等!”;
}
?>
로그인 후 복사

테스트해 보면 두 코드 모두 a와 b가 동일하게 출력된다는 것을 알 수 있습니다! , 초보 친구들은 매우 놀랄 것입니다. 어떻게 평등 할 수 있습니까? 이와 관련하여 편집자도 손실을 입었습니다. 그 이유는 비교할 때 PHP가 들어오는 변수의 유형을 엄격하게 확인하지 않고 변수를 자유롭게 변환하기 때문입니다. 변수가 0 null '' 또는 false인지 여부에 관계없이 PHP는 비교할 때 기본적으로 비어 있고 정수 값은 0이므로 동일합니다. 서로 다른 여러 값을 비교해야 하는 경우 "==="를 사용하세요. 3개의 등호는 유형과 값의 동일성을 포함하여 완전한 동일성을 나타냅니다. 초보자들이 저지르는 실수는 다음과 같습니다.

지금까지 약한 유형에 대해 말씀드렸으니 이제 강한 유형과 약한 유형의 차이점을 비교해 보겠습니다.

(1) 강력한 유형이든 약한 유형이든 변수에는 유형과 값이라는 두 가지 속성이 있습니다. 즉, 약한 유형의 변수에도 유형이 있습니다.

어떤 프로그래밍 언어이든 그 안에 사용되는 변수에는 유형과 값이 모두 있습니다. 강력한 유형의 변수 유형은 "변수 선언"이라고 하는 소스 코드에 명확하게 정의되어야 하는 반면, 약한 유형의 변수 유형은 선언할 필요가 없으며 인터프리터에 의해 해석됩니다. 그러나 이것이 약한 유형의 변수에 유형 개념이 없다는 의미는 아닙니다. 예를 들어, PHP의 gettype은 변수의 "현재" 유형을 반환합니다.

(2) 오해: [어떤 사람들은 강력한 유형의 변수는 변경할 수 없는 반면 약한 유형의 변수는 필요에 따라 변경할 수 있다고 생각합니다. 강력한 유형의 변수는 일단 선언되면 이 유형의 값만 저장할 수 있습니다. , 기타 값 변환 후 변수를 지불해야 합니다. 컴파일러가 자동으로 이해하는 변환이 있고, 프로그래머가 명시적으로 지정하는 강제 변환도 있습니다. 약한 유형의 변수 유형은 필요에 따라 지속적으로 변환됩니다. 】검은색 괄호 안의 내용은 오해입니다. 사실, 미리 입력된 변수 유형이나 약한 유형의 변수 유형은 변경할 수 없습니다. 다음 예제에서는 $b에 값을 할당할 때 $a의 값은 변경되지만 $a의 유형은 변경되지 않습니다. 다음 예제를 직접 테스트해 보세요.

예제 3:

<?php
$a = 25;
echo $a.&#39;|&#39;.gettype($a).&#39;<br>&#39;;
$b = $a.&#39;good&#39;;
echo $b.&#39;|&#39;.gettype($b).&#39;<br>&#39;;
echo $a.&#39;|&#39;.gettype($a).&#39;<br>&#39;;
?>
로그인 후 복사

출력 결과는 다음과 같습니다. :

25|integer25good|string25|integer
로그인 후 복사

(3) 강력한 유형의 언어에서 강제 변환은 변수 유형을 변경하지 않습니다.

강한 유형의 언어에는 변수 유형을 변경하지 않고 할당할 변수의 값 유형을 변경하는 "강제 변환"이 있습니다. 변수의 유형은 변경할 수 없습니다.

위 내용은 PHP가 약한 유형이고 배우기 쉽다고 말하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿