FILTER_CALLBACK에서 받은 변수는 항상 문자열입니다.

2167 단어 FilterPHP

발단


FILTER_CALLBACK에서 받은 변수 유형에 따라 실례적으로 생성된Validator를 나누고 싶었는데 string만 가져와서 깜짝 놀랐어요

검증을 위해 쓴 것

<?php
$result = filter_var(
    2,
    FILTER_CALLBACK,
    [
        'options' => function ($value) {
            return $value;
        }
    ]
);
var_dump($result); // string(1) "2"

이 설치(≈규격)는 아마 적합하지 않을 것이다


나는 아래의 이유에서 이 행위가 상감되지 않으려는 일은 거의 없다고 생각한다.
  • 유형의 검증을 하려면 일반적으로 VAALIDATE 필터를 사용하면 충분하다.
  • 각 프레임은 Validator(Validation) 구성 요소를 제공하며 일반적으로 사용합니다.
  • 문자열로 변환된 위치


    여기.에서 호출된 필터와 상관없이 문자열로 변환됩니다.
    정확히 말하면 convert_to_string()를 호출하기 전에'대상이 대상이기 때문에 문자열로 변환할 수 없으면 필터 실패(fail)'라는 처리가 있었다.어쨌든 필터 대상 변수 실례는 필터하기 전에 문자열로 변환됩니다.
    호출 필터의 경우'호출 필터 자체'는 여과 처리에 해당하기 때문에 사전에 문자열로 변환한 후에 변수를 전달해야 한다.
    그나저나 아까 확인했는데 문서에서 "값을 필터하기 전에 내부를 문자열로 변환하는 것을 주의하십시오."위에 쓰여 있다.

    좋은 웹페이지 즐겨찾기