C 데이터 핸들

(PHP 7 >= 7.4.0, PHP 8)


소개

FFI\CData 객체는 여러 가지 방법으로 일반 PHP 데이터로 사용할 수 있습니다.

  • 스칼라 유형의 C 데이터는 $cdata 속성을 통해 읽고 할당할 수 있습니다. $x = FFI::new('int'); $x->cdata = 42;
  • C 구조체 및 공용체 필드는 일반 PHP 객체 속성으로 액세스할 수 있습니다. $cdata->field
  • C 배열 요소는 일반 PHP 배열 요소로 액세스할 수 있습니다. $cdata[$offset]
  • C 배열은 foreach 문을 사용하여 반복할 수 있습니다.
  • C 배열은 count()의 인수로 사용할 수 있습니다.
  • C 포인터는 배열로 역참조될 수 있습니다. $cdata[0]
  • C 포인터는 일반 비교 연산자(<, <=, ==, !=, >=, >)를 사용하여 비교할 수 있습니다.
  • C 포인터는 일반 +/-/ ++/–- 연산을 사용하여 증가 및 감소할 수 있습니다. $cdata += 5
  • C 포인터는 일반 연산을 사용하여 다른 포인터에서 뺄 수 있습니다.
  • 함수에 대한 C 포인터는 일반 PHP 클로저로 호출할 수 있습니다. $cdata()
  • 모든 C 데이터는 clone 연산자를 사용하여 복제할 수 있습니다. $cdata2 = $cdata 복제;
  • 모든 C 데이터는 var_dump(), print_r() 등을 사용하여 시각화할 수 있습니다.

참고: 주목할만한 제한 사항은 FFI\CData 인스턴스가 isset(), empty()unset()을 지원하지 않으며 래핑된 C 구조체와 공용체가 Traversable을 구현하지 않는다는 것입니다.


클래스 개요

                  
class FFI\CData {
}