Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 선언문

<시간/>

소개

선언 구문 PHP의 문은 while, for, foreach 등과 같은 다른 흐름 제어 구조와 유사합니다.

구문

declare (directive)
{
   statement1;
   statement2;
   . .
}

블록의 동작은 지시문 유형에 따라 정의됩니다. 세 가지 유형의 지시문이 선언문에 제공될 수 있습니다. - ticks , 인코딩strict_types 지시.

틱 지시문

틱은 스크립트에서 특정 수의 문이 실행되는 특수 이벤트에 부여되는 이름입니다. 이러한 명령문은 PHP 내부에 있으며 스크립트의 명령문과 대략 동일합니다(조건 및 인수 표현식 제외. 모든 함수는 register_tick_function에 의해 틱 이벤트와 연관될 수 있습니다. . 등록된 함수는 선언 지시문에서 지정된 수만큼 틱 후에 실행됩니다.

다음 예제에서 myfunction()은 선언 구조의 루프가 5번의 반복을 완료할 때마다 실행됩니다.

예시

<?php
function myfunction(){
   echo "Hello World\n";
}
register_tick_function("myfunction");
declare (ticks=5){
   for ($i=1; $i<=10; $i++){
      echo $i."\n";
   }
}
?>

출력

위의 스크립트가 명령줄에서 실행될 때 다음과 같은 결과가 생성됩니다 -

1
2
3
4
5
Hello World
6
7
8
9
10
Hello World

PHP에는 unregister_tick_function() 도 있습니다. 틱 이벤트와 함수의 연결 제거

strict_types 지시문

PHP는 약한 유형의 언어이므로 특정 작업을 수행하는 데 적합하게 데이터 유형을 변환하려고 합니다. 두 개의 정수 인수가 있는 함수가 있고 그 덧셈을 반환하고 호출하는 동안 두 인수 중 하나가 float로 주어지면 PHP 파서는 자동으로 float를 정수로 변환합니다. 이 강제를 원하지 않으면 strict_types=1을 지정할 수 있습니다. 선언 구조에서

예시

<?php
//strict_types is 0 by default
function myfunction(int $x, int $y){
   return $x+$y;
}
echo "total=" . myfunction(1.99, 2.99);
?>

Float 매개변수는 다음 결과를 제공하기 위해 덧셈을 수행하기 위해 정수로 강제 변환됩니다 -

출력

total=3

그러나 strict_types=1과 함께 delcare 구문을 사용하면 강제 변환이 방지됩니다.

예시

<?php
declare (strict_types=1);
function myfunction(int $x, int $y){
   return $x+$y;
}
echo "total=" . myfunction(1.99, 2.99);
?>

출력

이것은 다음 오류를 생성합니다 -

Fatal error: Uncaught TypeError: Argument 1 passed to myfunction() must be of the type integer, float given, called in line 7 and defined in C:\xampp\php\testscript.php:3

인코딩 지시문

선언 구조에는 스크립트의 인코딩 체계를 지정할 수 있는 Encoding 지시문이 있습니다.

예시

<?php
declare(encoding='ISO-8859-1');
echo "This Script uses ISO-8859-1 encoding scheme";
?>