PHP에서 문자열 변환의 미묘한 차이
이전 강의에서 우리는 문자열처럼 숫자를 더하는 법을 배웠습니다. 그러나 그러한 덧셈에는 변수가 아닌 즉시 숫자를 더할 때 미묘한 차이가 있습니다.
점(.)은 문자열 덧셈뿐만 아니라 소수 부분을 정수 부분과 구분하는 데에도 사용된다는 점이 문제입니다.
점 주위에 공백을 두면 문제가 되지 않습니다:
<?php
echo 1 . 2; // '12'를 출력합니다
?>
그러나 점 주위의 공백을 제거하면 문자열 덧셈이 아니라 소수가 됩니다:
<?php
echo 1.2; // 1.2를 출력합니다
?>
이런 미묘한 차이 때문에 점의 한쪽에는 공백을 두고 다른 쪽에는 두지 않으면 쉽게 오류를 얻을 수 있습니다:
<?php
echo 1. 2; // 오류를 발생시킵니다
?>
그러나 변수에서는 이런 문제가 발생하지 않습니다:
<?php
$a = 1;
$b = 2;
echo $a.$b; // 오류가 아닌 '12'를 출력합니다
?>
코드 작성자는 숫자 3와 4를
문자열처럼 더하고 싶었습니다:
<?php
echo 3.4;
?>
그러나 코드는 올바르게 작동하지 않습니다. 코드 작성자의 오류를 수정하십시오.