PHP > LIBRARY > Type hinting/Type 설정하기/Throw error
 
PHP
Library
Tip&Tech
Q&A
 
PHP Function
phpschool
그누보드
LIBRARY
  HOME > PHP > LIBRARY
 
Type hinting/Type 설정하기/Throw error
작성일 : 19-01-08
조회 : 124  
<?php declare(strict_types=1); class A{ public function checkValue(int $int, float $float, string $str, bool $bool){ echo ( "Int is ".$int."<br/>". "Float is ".$float."<br/>". "String is ".$str."<br/>". "Boolean is ".$bool."<br/>" ); } } $a = new A(); $a->checkValue(3, 3, 10, true); // type과 맞지 않기 때문에 오류 발생 ?>

주의할 점! declare(strict_types=1);는 맨위에 있어야 하고, include 통해 declare(strict_types=1);가 있는 php파일을 불러오더라도 제대로 작동 안함, 그 파일 자체의 맨위에 있어야 한다.

6. Return type

주의! php7 이상 사용 가능

Return되는 값이 어떤 값이 되어야만 하는지도 설정할 수 있다.

이것도 declare(strict_types=1); 에 따라서 오류 발생이 달라짐

declare 선언안할시(형 변환 가능하면 자동으로 형 변환)

<?php class A{ public function checkValue(float $a, float $b) : int{ return $a + $b; } } $a = new A(); echo($a->checkValue(3.5, 4.7)); // 8 ?>

declare 선언시(오류 발생하기 때문에 return값을 조절해 줘야함)

<?php declare(strict_types=1); class A{ public function checkValue(float $a, float $b) : int{ return (int)($a + $b); //return 값을 int로 변환 } } $a = new A(); echo($a->checkValue(3.5, 4.7)); ?>

Throw error

type hinting은 throwable interface 가지고 있기 때문에 try, catch 이용해서 error message 출력되게 할 수 있다.

<?php declare(strict_types=1); class A{ public function checkValue(float $a, float $b) : int{ return (int)($a + $b); } } $a = new A(); try{ echo $a->checkValue(3.5, true); } catch(TypeError $e){ echo "Error is occured"."<br/>"; echo $e->getMessage(), "\n"; } ?>

 
 

Total 77
번호 제   목 조회
공지 php 라이브러리 393
77 매직해시(MAGIC HASHES) 취약점 124
76 Trait 122
75    Trait 130
74 Overloading 128
73    Overloading 127
72 Type hinting/Type 설정하기/Throw error 125
71    Type hinting/Type 설정하기/Throw error 97
70    Type hinting/Type 설정하기/Throw error 125
69 object clone 134
68    object clone 119
67 serialize / unserialize 117
66 spl_autoload_register(오토로드) 110
65 window에서 composer깔기 119
64 Exception/try/throw/catch 125
63 Error의 종류 123
62    Error의 종류 124
61    Error의 종류 124
60 eval 124
59 Magic_methods 127
58    Magic_methods 135
 1  2  3  4  
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.