백엔드 개발 PHP7 php7의 새로운 기능 이해 및 비교

php7의 새로운 기능 이해 및 비교

Jan 29, 2021 am 09:35 AM

php7의 새로운 기능 이해 및 비교

권장(무료): PHP7

1.

문법: If 변수가 존재하고 값이 NULL이 아니면 자체 값을 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다.

 1 //php7以前  
 if判断 
 2 if(empty($_GET['param'])) { 
 3       $param = 1; 
 4 }else{ 
 5     $param = $_GET['param']; 
 6 } 7  
 8 //php7以前  三元运算符 
 9 $param = empty($_GET['param']) ? 1 : $_GET['param'];10 
 11 //PHP7  null合并运算符12 $param = $_GET['param'] ?? 1;//1
로그인 후 복사

2. 정의()는 상수 배열을 정의합니다

 1 //php7以前 
 2 define("CONTENT", "hello world"); 
 3 echo CONTENT;//hello world 4  
 5 //PHP7 6 define('ANIMALS', [ 
 7     'dog', 
 8     'cat', 
 9     'bird'
 10 ]);
 11 echo ANIMALS[2];//bird12 
 13 //PHP7 类外也可使用const来定义常量
 14 const CONSTANT = 'Hello World'; 
15 echo CONSTANT;//Hello World
로그인 후 복사

3 . 결합 비교 연산자(<=>)

결합 비교 연산자는 $a가 $b보다 작거나 같거나 클 때 -1을 반환하고 0 또는 1. 비교 원칙은 PHP의 일반적인 비교 규칙을 따르는 것입니다.

 1 //整数 
 2 echo 1 <=> 1; // 0 
 3 echo 1 <=> 2; // -1 
 4 echo 2 <=> 1; // 1 5  
 6 //浮点数 7 echo 1.5 <=> 1.5; // 0 
 8 echo 1.5 <=> 2.5; // -1 
 9 echo 2.5 <=> 1.5; // 1 
 11 //字符串12 echo "a" <=> "a"; // 0
 13 echo "a" <=> "b"; // -1
 14 echo "b" <=> "a"; // 1
로그인 후 복사

4. 변수 유형 선언

두 가지 모드: 필수(기본값) 및 엄격 모드. 유형 매개변수를 사용할 수 있습니다: string, int, float, bool

 1 //... 操作符: 表示这是一个可变参数. php5.6及以上的版本可使用: 函数定义的时候变量前使用. 
 2 function intSum(int ...$ints){ 
 3     return array_sum($ints); 
 4 } 
 5 var_dump(intSum(2,'3.5'));//5 
 6  
 7 //严格模式 
 8 //模式声明:declare(strict_types=1);  默认情况值为0,值为1代表为严格校验的模式  
 9 declare(strict_types=1);
 10 function add(int $a,int $b){
 11     return $a+$b;
 12 }
 13 var_dump(add(2,'3.5')); //Fatal error: Uncaught TypeError: Argument 2 passed to add() must be of the type integer
로그인 후 복사

5. 반환 값 유형 선언

매개변수 유형 선언과 유사하게 추가하세요. 함수 정의 후) functionRRREERREEEE

6은 새로운 클래스 {}가 익명의 객체를 생성 할 수 있습니다

Closure::call() 메서드는 객체 범위를 클로저에 임시로 바인딩하고 호출하는 간단한 방법으로 추가되었습니다. 이 메서드의 성능은 PHP5의 binTo.

1 //有效的返回类型
2 declare(strict_types = 1);
3 function getInt(int $value): int {
4   return $value;
5 }
6 print(getInt(6));//6
로그인 후 복사
1 //无效返回类型
2 declare(strict_types = 1);
3 function getNoInt(int $value): int {
4   return $value+'2.5';
5 }
6 print(getNoInt(6));//Fatal error: Uncaught TypeError: Return value of getNoInt() must be of the type integer
로그인 후 복사

8에 비해 훨씬 빠릅니다.

unserialize() 기능: 필터링 기능을 사용하면 불법 데이터의 코드 삽입을 방지하여 더 안전한 역직렬화된 데이터를 제공할 수 있습니다. Char: 일부에 대한 액세스를 제공합니다. 참고:

 1 <?php 
 2 //php7以前 接口实现 
 3 interface User{ 
 4     public function getDiscount(); 
 5 } 
 6 class VipUser implements User{ 
 7     //折扣系数 
 8     private $discount = 0.6; 
 9     public function getDiscount() {
 10         return $this->discount;
 11     }
 12 }
 13 class Goods{
 14     private $price = 200;
 15     private $objectVipUser;
 16     //User接口VipUser类实现
 17     public function getUserData($User){
 18         $this->objectVipUser = $User;
 19         $discount = $this->objectVipUser->getDiscount();
 20         echo "商品价格:".$this->price*$discount;
 21     }
 22 }
 23 $display = new Goods();
 24 //常规实例化接口实现对象
 25 $display ->getUserData(new VipUser);//商品价格:120
로그인 후 복사

10.CSPRNG

CSPRNG 함수는 암호화 난수를 생성하는 간단한 메커니즘을 제공합니다. .

random_bytes() - 암호화로 보호된 의사 난수 문자열

random_int() - 암호화로 보호된 의사 난수 정수

 1 <?php 
 2 //php7 创建一个匿名的对象 
 3 interface User{ 
 4     public function getDiscount(); 
 5 } 
 6 class Goods{ 
 7     private $price = 200; 
 8 private $objectVipUser; 
 9     public function getUserData($User){
 10         $this->objectVipUser = $User;
 11         $discount = $this->objectVipUser->getDiscount();
 12         echo "商品价格:".$this->price*$discount;
 13     }
 14 }
 15 $display = new Goods();
 16 //new匿名对象实现user接口
 17 $display ->getUserData(new class implements User{
 18     private $discount = 0.6;
 19     public function getDiscount() {
 20         return $this->discount;
 21     }
 22 });//商品价格:120
로그인 후 복사

11. 명령문 사용

당신은 사용할 수 있습니다 단일 사용 문을 사용하면 여러 use 문을 사용하는 대신 동일한 네임스페이스에서 클래스, 함수 및 상수를 가져올 수 있습니다.

 1 <?php 
 2 //php7以前 
 3 class A { 
 4     private  $attribute = &#39;hello world&#39;; 
 5 } 
 6  
 7 $getClosure = function(){ 
 8     return $this->attribute; 
 9 };
 10 
 11 $getAttribute = $getClosure->bindTo(new A, 'A');//中间层闭包
 12 echo $getAttribute();//hello world
로그인 후 복사
12. intp

새 추가 intp() 함수는 두 개의 매개 변수를 받고 반환 값은 는 첫 번째 매개변수를 두 번째 매개변수로 나누고 반올림한 값입니다.

위 내용은 php7의 새로운 기능 이해 및 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)