현재 위치: > 최신 기사 목록> var_dump ()를 사용하여 ImageOpenPolygon () 입력 매개 변수를 확인하는 데 도움이됩니다

var_dump ()를 사용하여 ImageOpenPolygon () 입력 매개 변수를 확인하는 데 도움이됩니다

M66 2025-06-03

PHP 그래픽 처리 중에 ImageOpenPolygon ()은 개방 다각형 (열린 다각형)을 그리는 데 사용되는 함수입니다. 그러나 때로는 매개 변수를 전달할 때 그래프를 올바르게 그릴 수 없거나 코드가 잘못 실행됩니다. 문제를 신속하게 찾으려면 var_dump ()를 사용하여 ImageOpenPolygon () 의 입력 매개 변수가 올바른지 확인하는 데 도움을 줄 수 있습니다.

ImageOpenPolygon ()의 매개 변수 이해

먼저 ImageOpenPolygon () 의 기본 정의를 살펴 보겠습니다.

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ image는 imageCreate () 또는 imageCreatetRueColor () 에서 만든 이미지 리소스입니다.

  • $ 포인트는 [x0, y0, x1, y1, ..., xn, yn] 형식의 포인트 배열입니다.

  • $ num_points 는 포인트 수입니다 (배열 요소의 수가 아니라 좌표 쌍 수).

  • $ ColorimageColorAllocate () 에서 반환 한 색상 식별자입니다.

일반적인 오류는 다음과 같습니다.

  • $ 포인트 배열 길이는조차 없습니다.

  • $ num_points 계산 오류.

  • $ 포인트 의 값은 정수가 아닙니다.

확인을 돕기 위해 var_dump ()를 사용하는 방법은 무엇입니까?

var_dump ()는 변수의 유형과 값을 명확하게 표시하여 복잡한 배열 또는 리소스 유형의 데이터를 디버깅하는 데 이상적입니다.
ImageOpenPolygon ()을 호출하기 전에 다음과 같은 전달 된 매개 변수를 확인할 수 있습니다.

샘플 코드 :

 <?php
// 빈 이미지를 만듭니다
$image = imagecreatetruecolor(200, 200);

// 색상을 할당합니다
$color = imagecolorallocate($image, 255, 0, 0);

// 포인트 배열을 정의하십시오
$points = [
    50,  50,
    150, 50,
    150, 150,
    50,  150
];
$num_points = count($points) / 2;

// 사용 var_dump 매개 변수를 확인하십시오
var_dump($points);
var_dump($num_points);
var_dump($color);

// 열린 다각형을 그려보십시오
if (!imageopenpolygon($image, $points, $num_points, $color)) {
    echo "그림이 실패했습니다,입력 매개 변수를 확인하십시오。";
} else {
    // 브라우저에 사진을 출력합니다
    header('Content-Type: image/png');
    imagepng($image);
}

// 무료 메모리
imagedestroy($image);
?>

출력 예제를 실행 한 후

 array(8) {
  [0]=>
  int(50)
  [1]=>
  int(50)
  [2]=>
  int(150)
  [3]=>
  int(50)
  [4]=>
  int(150)
  [5]=>
  int(150)
  [6]=>
  int(50)
  [7]=>
  int(150)
}
float(4)
int(16711680)

이러한 출력을 사용하면 다음을 신속하게 확인할 수 있습니다.

  • $ 포인트가 숫자 쌍이며 올바르게 배열되는지 여부.

  • $ num_points가 올바른 정수인지 여부 (계산이 부동 소수점 번호 인 경우 정수로 캐스트해야합니다).

  • $ color가 올바르게 할당되었는지 여부

홀수 요소와 같은 $ 포인트 배열 데이터가 올바르지 않거나 좌표 데이터가 문자열 (예 : "50px" ) 인 경우 즉시 찾아서 수정할 수 있습니다.

주목해야 할 것

  1. NUM_POINTS 매개 변수는 정수 여야합니다. 분할에 의해 얻은 소수점을 사용하는 경우 (int) 로 변형을 강제로해야합니다.

  2. $ 포인트 배열의 총 요소 수가 짝수인지 확인하십시오.

  3. Color Resource $ Color가 올바르게 할당되었는지 확인하십시오.

  4. 공식적인 환경에서 var_dump ()를 출력하지 마십시오. 대신 로그를 사용할 수 있습니다.