Spaceship 연산자


기존의 비교연산자는 두 개의 값을 비교하여 참(1)과 거짓(0)으로 논리 결과를 반환했습니다.

PHP 7.x로 업그레이드되면서 두 개의 값이 큰지, 작은지, 같은지를 한 번에 비교하는 스페이스쉽 연산자를 새롭게 지원합니다.

스페이스 연산자는 <=>로 표시가 되는데 그 모양이 우주선과 같이 보여서 스페이스 연산자라고 명칭하게 되었습니다.

PHP 7.x 이전에 스페이스 연산과 같은 처리를 하기 위해서는 다음과 같은 함수를 만들어서 사용해야 했습니다.

function _Spaceship($a,$b){

	if ($a == $b) return 0;
	else if($a<$b) return -1;
	else if($a>$b) return 1; 

}

즉 입력된 2개의 값을 3번의 조건문을 통해 처리했습니다.

예제 파일 space-01.php

<?php
// 정수
	echo "정수<br>";
	echo "1 <=> 1 = ";
	echo 1 <=> 1; // 0
	echo "<br>";
	echo "1 <=> 2 = ";
	echo 1 <=> 2;
	echo "<br>"; // -1
	echo "2 <=> 1 = ";
	echo 2 <=> 1;
	echo "<br>"; // 1


	// 실수
	echo "<br>";
	echo "실수<br>";
	echo "1.5 <=> 1.5 = ";
	echo 1.5 <=> 1.5;
	echo "<br>"; // 0
	echo "1.5 <=> 2.5 = ";
	echo 1.5 <=> 2.5;
	echo "<br>"; // -1
	echo "2.5 <=> 1.5 = ";
	echo 2.5 <=> 1.5;
	echo "<br>"; // 1
 
	// 문자열
	echo "<br>";
	echo "문자열<br>";
	echo "a <=> a = ";
	echo "a" <=> "a";
	echo "<br>"; // 0
	echo "a <=> b = ";
	echo "a" <=> "b";
	echo "<br>"; // -1
	echo "b <=> a = ";
	echo "b" <=> "a";
	echo "<br>"; // 1
?>

결과

정수
1 <=> 1 = 0
1 <=> 2 = -1
2 <=> 1 = 1

실수
1.5 <=> 1.5 = 0
1.5 <=> 2.5 = -1
2.5 <=> 1.5 = 1

문자열
a <=> a = 0
a <=> b = -1
b <=> a = 1