PHP에서는 숫자를 크게 **정수(integer)**와 부동소수(float, double) 두 가지로 구분합니다.
소수점 없는 숫자
10진수, 8진수(0으로 시작), 16진수(0x로 시작), 2진수(0b로 시작) 모두 사용 가능
$number = 42; // 10진수
$octal = 0755; // 8진수
$hex = 0xFF; // 16진수
$binary = 0b1010; // 2진수
소수점이 있는 숫자
과학적 표기법도 가능 (e.g., 1.2e3)
$price = 19.95;
$distance = 1.2e3; // 1200
연산자 |
설명 |
예시 |
---|---|---|
+ |
덧셈 |
$a + $b |
- |
뺄셈 |
$a - $b |
* |
곱셈 |
$a * $b |
/ |
나눗셈 |
$a / $b |
% |
나머지 |
$a % $b |
** |
거듭제곱 (PHP 5.6+) |
$a ** $b |
PHP에서 문자열은 작은 따옴표(’ ’) 또는 큰 따옴표(” “)를 사용해 표현합니다.
$name = "Alice";
$message = 'Hello, world';
**큰따옴표(” “)**는 변수나 이스케이프 시퀀스(\n, \t 등)를 해석
**작은따옴표(’ ’)**는 문자 그대로 출력
$name = "Bob";
echo "Hello, $name"; // Hello, Bob
echo 'Hello, $name'; // Hello, $name
. (점) 연산자를 사용
$first = "Hello";
$second = "World";
echo $first . " " . $second; // Hello World
함수 |
설명 |
---|---|
strlen() |
문자열 길이 반환 |
strtoupper() |
대문자 변환 |
strtolower() |
소문자 변환 |
substr() |
문자열의 일부 추출 |
strpos() |
특정 문자열 위치 반환 (없으면 false) |
str_replace() |
문자열 치환 |
$name = "Charlie";
echo strlen($name); // 7
echo strtoupper($name); // CHARLIE
PHP는 동적 타이핑 언어로, **자동 형변환(type juggling)**이 발생합니다.
$number = 100;
$string = "50";
$sum = $number + $string; // 150
문자열 "50"은 숫자로 변환되어 더해짐
문자열이 숫자로 변환 불가능한 경우 0 처리
$result = "abc" + 10; // 결과는 10 (abc는 숫자 변환 실패 → 0 처리)
숫자가 아닌 문자열과 연산 시 오류 또는 논리 오류 발생 가능
의도하지 않은 자동 변환을 방지하려면 is_numeric(), intval(), floatval() 등을 사용
if (is_numeric($value)) {
$num = intval($value);
}
$var = "123";
$intVal = (int)$var;
$floatVal = (float)"12.34";
숫자를 문자열로 자동 변환하는 경우도 있음
$num = 100;
$str = "The number is " . $num; // 자동으로 문자열 변환
함수 |
설명 |
---|---|
gettype() |
변수의 타입을 문자열로 반환 |
is_int() |
정수 여부 확인 |
is_string() |
문자열 여부 확인 |
is_numeric() |
숫자 형태 여부 확인 |
항목 |
설명 |
---|---|
정수 |
소수점 없는 숫자 |
부동소수 |
소수점 포함 숫자 또는 과학적 표기법 사용 가능 |
문자열 |
작은/큰따옴표로 표현, 변수 파싱은 큰따옴표에서만 |
자동 형변환 |
숫자와 문자열이 섞이면 PHP가 자동으로 형변환 |
형변환 함수 |
intval(), floatval(), strval() 등 사용 가능 |