PHP 의 void 는 무엇입니까?
11291 단어 PHP
void
에서 몇 가지 다른 의미가 사용됩니다.도대체 void가 뭐예요?
프로그래밍 언어에서void는'아무것도 없다'는 형식의 이름입니다.원시 어휘로서의 키워드나 예약어도 많다.
void(컴퓨터) - 위키백과 1 참조
C 언어에서 "파라미터를 받아들이지 않고 되돌려주지 않는다"함수의 원형은
void f(void);
처럼 기술할 수 있다.PHP 설명서의 void
PHP: 이 문서의 위조 유형 및 변수 - Mual에 기재되어 있다.
void
만약 반환 값의 유형이
void
이라면 반환 값이 의미가 없다는 것을 나타낸다.매개 변수 일람표에서 void
를 사용할 때 이 함수는 매개 변수를 받아들이지 않는다는 것을 나타낸다.구체적으로 다음과 같다.
header
(PHP 4, PHP 5, PHP 7)
헤더 - 원본 HTTP 헤더 보내기
설명
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
PHP: header - Manual이것은
header()
에 대한 실행 결과가 어떤 값도 되돌아오지 않는다는 것을 의미한다.$result = header($str);
와var_dump(header($str));
같은 집행은 무의미하다는 것이다.의미가 없지만 이 반환값은 실제로NULL이다.get_defined_vars
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
get_defined_vars - 정의된 모든 변수를 배열로 반환
설명
array get_defined_vars ( void )
PHP: get_defined_vars - Manual이번 매개 변수는
( void )
입니다.이것은 특별한 파라미터를 기대하는 것이 아니라 목록의 내용이void이기 때문에 비어 있기 때문에 파라미터에서 아무것도 받아들이지 않는다.이런 함수에 매개 변수를 전달해도 오류가 발생하지 않는 경우가 많지만 의미가 없다.PHPDoc의 void
PHP 설명서와 동일@return 태그에 사용할 수 있는 아날로그형입니다.
매개변수를 반환하지 않는 함수는 PHPDoc의 메모 메모 방법에 다음과 같습니다.
/**
* @return void
*/
function hoge()
{
echo "hoge";
}
PHPDoc는 이후에 설명한 유형 선언과 달리 실행할 때 아무런 영향을 주지 않습니다.PHP 7.1 이하에서도 사용할 수 있는 리뷰 행입니다.PHP7.1형 선언 중의void
PHP7에서 반환 값에 형식 설명을 쓸 수 있습니다, PHP7로 바뀌었다.1 기능이 한층 강화되어
void
키워드도 쓸 수 있다.function hoge(): void
{
echo "hoge";
}
이 유형 선언의 특징은 값을 반환하는 중 오류가 발생했다는 것입니다.<?php
function a(): void
{
echo "a";
if (false) {
return true;
}
}
a();
// Fatal error: A void function must not return a value in /in/ZidNI on line 7
이 특징은 실제 실행되지 않는 처리return
라도 리셋 값만 쓰면 오류로 포착할 수 있기 때문에 안심할 수 있다.매개 변수가 없습니다.
return
문제없습니다.function b(): void
{
if (foo()) {
return;
}
bar();
buz();
return; // 省略可能
}
도구 지원
PhpStorm은 반환 값이
void
인 함수의 반환 값을 사용할 때 선명하게 강조 표시됩니다.또한 이것도Phan와 같은 단일 정적 분석 도구로 측정할 수 있다.
funcs.php:8 PhanTypeVoidAssignment Cannot assign void return value
PHPDoc 및 유형 선언
PHPDoc 형식의 유형 주석
@return void
과 PHP7.1 형식의 유형 성명: void
중 어느 것으로 쓰느냐에 따라'이 코드를 기반으로 한 PHP7.1 이후의 전용 여부'만 선택하면 문제가 없다.방금 소개한 두 가지 도구, Phptorm과 Phan은 이 두 가지 쓰기 방법이 똑같아 보이기 때문에 어느 것을 쓰든지 똑같다.
: void
특별한 도구를 추가하지 않더라도 PHP7.1이 있으면 정의할 때 오류의 반환 값을 쉽게 검출할 수 있으므로 추천합니다.두 가지 형식 모두 쓸 수 있지만, 다만 지루할 뿐, 두 가지 좋은 점은 없다.하나만 쓰면 돼.골든 휠 간 PHP7.1이 안 되면 코드를 이동하지 않는다는 것이 명확해지면
: void
유형 성명으로 통일하면 더욱 간결해진다.널리 활용되고 싶은 라이브러리 등에서 PHP71세 미만을 지원하려면 PHPDoc 형식
@return void
으로 쓰는 것이 비교적 안전하다.상관없는 일
PHP 질문: Syntax Error의 맨 위 행이 검출된 경우는 무엇입니까?pic.twitter.com/zwHXYaYuti — nya-n (@tadsan) February 15, 2018
<?php
namespace
{
const void = null; // 1
goto void;
function void( // 2
$void = void // 3
): void // 4
{
var_dump(void);
return void; // 5
}
}
namespace void
{
void:
void(void);
}
void
는 PHP7입니다.1에서 위조 이름으로 기타 예약 언어에 추가됩니다.PHP 7.0.0 이후 이러한 키워드는 속성 및 상수의 이름으로 사용할 수 있습니다.또한 학급, 인터페이스와 훈련의 방법 명칭으로도 사용할 수 있다
이전 PHP 7.0에서 방법으로 허용된키워드 목록과 달리'기타 예약어'는 클래스명(TRAIT 인터페이스 포함)으로만 사용할 수 없으며 함수명, 방법명, 명명공간, 상수명, Goto 라벨 등 기호로 문제없이 정의할 수 있다.
일부러 그런 짓을 해도 좋을 게 없으니 PHP를 재미있는 지식으로 남겨두세요...잊어도 괜찮아요.
[추기] PHP에 void cast/연산자 없음
또한 언어에 따라 JavaScript와 같은 void 연산자가 존재합니다.JavaScript의 void 연산자는 작업 수에 대한 공식을 평가하고 값을 계산하지만 값이 무시되고 반환되지 않습니다.C 언어에서 버려진 값을 표시하는 데 사용되는void 형식과 유사한cast (예:
(void)printf("Hello");
.PHP에는 이런 용도가 없다
(void)
.대체라기보다는 (unset)
출연자가 있다.이것은 모든 값을 null
에 분배하는 것이다.Psy Shell v0.8.17 (PHP 7.1.14 — cli) by Justin Hileman
>>> (unset)[]
=> null
>>> (unset)fopen('php://stdout', 'w');
=> null
>>> $a = "AAAAA";
=> "AAAAA"
>>> (unset)$a
=> null
>>> $a
=> "AAAAA"
>>> unset($a)
>>> $a
PHP Notice: Undefined variable: a on line 1
주의해야 할 것은(unset)
배우가 어떤 값이 오든지 반납null
이다.변수는 정의되지 않은 것이 아니다.그것은 unset($v)
입니다.이러는 이유가 뭐야?보통
null
쓰면 되지 않나요?왜 이런 배우가 있을까요?몰라.예전에 그렇게 투덜거리면 누군가가 나에게 믿음직스러운 말을 설명해 준 것 같지만, 나는 이미 기억이 나지 않기 때문에 틀림없이 상관없는 느낌일 것이다.
각주
2017-04-0219:51 버전 ↩
Reference
이 문제에 관하여(PHP 의 void 는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tadsan/items/154070f1ee4c7fe4ae47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)