PHP 7에서 <=> ( '우주선'연산자)는 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
- 참조 — PHP에서이 기호의 의미는 무엇입니까? 답변 18 개
올해 11 월에 나올 PHP 7은 우주선 (<=>) 연산자를 소개 할 것입니다. 그것은 무엇이며 어떻게 작동합니까?
이 질문은 이미이 대답 PHP 사업자에 대한 우리의 일반적인 기준의 문제입니다.
이 <=>
연산자는 다음과 같은 조합으로 비교를 제공합니다.
Return 0 if values on either side are equal
Return 1 if value on the left is greater
Return -1 if the value on the right is greater
결합 된 비교 연산자가 사용하는 규칙은 현재 PHP viz에서 사용하는 비교 연산자와 동일합니다. <
, <=
, ==
, >=
와 >
. Perl 또는 Ruby 프로그래밍 배경을 가진 사람들은 PHP7에 제안 된이 새로운 연산자에 이미 익숙 할 것입니다.
//Comparing Integers
echo 1 <=> 1; //outputs 0
echo 3 <=> 4; //outputs -1
echo 4 <=> 3; //outputs 1
//String Comparison
echo "x" <=> "x"; // 0
echo "x" <=> "y"; //-1
echo "y" <=> "x"; //1
에 따르면 운영자 소개 된 RFC , $a <=> $b
평가됩니다에를 :
- 0이면
$a == $b
- 경우 -1
$a < $b
- 1이면
$a > $b
엄밀히 말하면 공식 문서$a <=> $b
는 반환 할 수있는 약간 약한 보증 만 제공 하지만 실제로 시도한 모든 시나리오에서 실제로 그런 것처럼 보입니다.
$a
각각이보다 작 거나 같거나 큰 경우 0보다 작거나 같거나 0보다 큰 정수$b
어쨌든 왜 그런 연산자를 원하십니까? 다시, RFC 주소이 - 그것은 거의 전체의 더에 대한 쓰기 비교 기능을 편리하게하기 위해 usort
(그리고 유사한 uasort
과 uksort
).
usort
배열을 첫 번째 인수로 정렬하고 사용자 정의 비교 함수를 두 번째 인수로 정렬합니다. 이 비교 함수를 사용하여 배열의 한 쌍의 요소 중 더 큰 요소를 결정합니다. 비교 함수는 다음을 반환해야합니다.
제 1 인수가 각각 제 2 인수보다 작거나 같거나 큰 것으로 간주되는 경우 0보다 작거나 같거나 0보다 큰 정수
우주선 운영자는 이것을 간결하고 편리하게 만듭니다.
$things = [
[
'foo' => 5.5,
'bar' => 'abc'
],
[
'foo' => 7.7,
'bar' => 'xyz'
],
[
'foo' => 2.2,
'bar' => 'efg'
]
];
// Sort $things by 'foo' property, ascending
usort($things, function ($a, $b) {
return $a['foo'] <=> $b['foo'];
});
// Sort $things by 'bar' property, descending
usort($things, function ($a, $b) {
return $b['bar'] <=> $a['bar'];
});
우주선 연산자를 사용하여 작성된 비교 함수의 더 많은 예 는 RFC 의 유용성 섹션 에서 찾을 수 있습니다 .
Its a new operator for combined comparison. Similar to strcmp()
or version_compare() in behavior, but it can be used on all generic PHP values with the same semantics as <
, <=
, ==
, >=
, >
. It returns 0
if both operands are equal, 1
if the left is greater, and -1
if the right is greater. It uses exactly the same comparison rules as used by our existing comparison operators: <
, <=
, ==
, >=
and >
.
참고URL : https://stackoverflow.com/questions/30365346/what-is-the-spaceship-operator-in-php-7
'IT story' 카테고리의 다른 글
경고 : 분리 된 뷰 컨트롤러에서 뷰 컨트롤러를 표시하지 않는 것이 좋습니다. (0) | 2020.05.25 |
---|---|
파이썬에서 구분 기호로 문자열 나누기 (0) | 2020.05.24 |
캐치 루프 내부 또는 외부로 이동해야합니까? (0) | 2020.05.24 |
컴포넌트 외부에서 Vue.js 컴포넌트 메소드 호출 (0) | 2020.05.24 |
ReactJS에서 'onKeyPress'이벤트를 처리하는 방법은 무엇입니까? (0) | 2020.05.24 |