>백엔드 개발 >PHP7 >php7에 두 개의 새로운 연산자가 추가되었습니다: '?->' 및 '??'

php7에 두 개의 새로운 연산자가 추가되었습니다: '?->' 및 '??'

PHPz
PHPz원래의
2023-03-21 15:49:521750검색

PHP7이 출시된 후 모든 사람들은 강력한 유형 검사가 강화되었다는 중요한 변화를 발견했습니다. 이 변경은 변수가 정의되기 전에 참조하는 것과 같은 많은 실수를 피하는 데 도움이 되므로 매우 유익합니다.

이전 PHP 버전에서는 변수를 정의하지 않은 경우 변수를 직접 사용하면 정의되지 않은 변수 오류가 발생했습니다. 그러나 PHP7에서는 이 문제를 피하기 위해 몇 가지 새로운 기능을 사용할 수 있습니다. Undefined variable的错误。但是,在PHP7中,我们可以使用一些新功能来避免这个问题的发生。

这些新功能包括两个新的操作符,即:?->??。它们可以分别解决两种不同类型的问题。

?->操作符

在之前的PHP版本中,我们可以通过使用isset函数来判断一个变量是否已定义。但是,这只适用于单个变量的情况。如果我们需要检查一个对象的属性是否已定义,那么就需要使用一些复杂的代码来完成这个任务。

在PHP7中,我们可以使用?->操作符来检查一个对象的属性是否已定义。这个操作符只在属性的接收者是null、false或未定义的变量时返回null,否则返回属性的值。通过这种方法,我们可以避免在属性没有被定义之前使用它,从而避免Undefined variable的错误。

<?php
$obj = null;
$value = $obj?->property;
?>

在上面的代码中,如果$obj是null,那么$value将被设置为null,否则$value将被设置为$obj的property属性的值。

??操作符

另外一个非常有用的新功能是??操作符。这个操作符可以用来检查一个变量是否已定义,并且如果没有定义就设置一个默认值。

在之前的PHP版本中,我们通常会使用三元操作符来完成这个任务:

<?php
$variable = isset($variable) ? $variable : &#39;default value&#39;;
?>

在PHP7中,我们可以使用??操作符来代替上面的代码。如果$variable已经定义,那么$variable将被赋值给$result,否则$result将被赋值为默认值。

<?php
$variable = null;
$result = $variable ?? "default value";
?>

在上面的代码中,$result将被设置为"default value",因为$variable是null。

总结

这两个新操作符可以非常有效地避免Undefined variable

이 새로운 기능에는 ?->??라는 두 가지 새로운 연산자가 포함됩니다. 그들은 각각 두 가지 유형의 문제를 해결할 수 있습니다. 🎜🎜?->연산자🎜🎜이전 PHP 버전에서는 isset 함수를 사용하여 변수가 정의되었는지 여부를 확인할 수 있었습니다. 그러나 이는 단일 변수에 대해서만 작동합니다. 객체의 속성이 정의되었는지 확인해야 하는 경우 이 작업을 수행하려면 복잡한 코드를 사용해야 합니다. 🎜🎜PHP7에서는 ?-> 연산자를 사용하여 객체의 속성이 정의되었는지 확인할 수 있습니다. 이 연산자는 속성 수신자가 null, false 또는 정의되지 않은 변수인 경우에만 null을 반환하고, 그렇지 않으면 속성 값을 반환합니다. 이러한 방식으로 속성이 정의되기 전에 속성을 사용하는 것을 방지하여 정의되지 않은 변수 오류를 방지할 수 있습니다. 🎜rrreee🎜위 코드에서 $obj가 null이면 $value는 null로 설정되고, 그렇지 않으면 $value는 $obj의 속성 속성 값으로 설정됩니다. 🎜🎜?? 연산자🎜🎜또 다른 매우 유용한 새 기능은 ?? 연산자입니다. 이 연산자를 사용하면 변수가 정의되어 있는지 확인하고 그렇지 않은 경우 기본값을 설정할 수 있습니다. 🎜🎜이전 PHP 버전에서는 일반적으로 이 작업을 수행하기 위해 삼항 연산자를 사용했습니다. 🎜rrreee🎜PHP7에서는 위 코드를 대체하기 위해 ?? 연산자를 사용할 수 있습니다. $variable이 정의되면 $variable이 $result에 할당되고, 그렇지 않으면 $result에 기본값이 할당됩니다. 🎜rrreee🎜위 코드에서는 $variable이 null이므로 $result가 "기본값"으로 설정됩니다. 🎜🎜요약🎜🎜이 두 가지 새로운 연산자는 정의되지 않은 변수 오류를 매우 효과적으로 방지하고 코드를 더 명확하고 유지 관리하기 쉽게 만들 수 있습니다. 이를 사용할 때 사용법과 제한 사항에만 주의하면 됩니다. 🎜

위 내용은 php7에 두 개의 새로운 연산자가 추가되었습니다: '?->' 및 '??'의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.