개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.06 12:06

LuaSandbox::wrapPhpFunction와 PHP 함수 호출 사이의 데이터 타입 호환성 문제

목록
  • 컴파일러수집가 오래 전 2025.06.06 12:06 인기
  • 353
    1
안녕하세요 선생님. 저는 LuaSandbox::wrapPhpFunction을 사용하여 PHP 함수를 Lua에서 호출하려고 합니다. 그러나 PHP 함수에서 리턴하는 데이터 타입이 Lua Sandbox에서 예상하지 못한 타입으로 나타나서 오류가 발생합니다.

예를 들어, PHP 함수가 정수 값을 리턴하는 경우 Lua Sandbox에서는 부동소수점으로 나타나서 오류가 발생합니다. 이 문제를 해결하기 위해선 어떻게 해야할까요?

PHP 함수에서 리턴하는 데이터 타입을 Lua Sandbox에서 정확하게 예상할 수 있는 방법이 있나요? 아니면 데이터 타입을 변환하는 방법이 있나요?

제가 사용하는 LuaSandbox 버전은 1.4입니다. 알려주세요.

    댓글목록

    profile_image
    나우호스팅  오래 전



    LuaSandbox::wrapPhpFunction을 사용하여 PHP 함수를 Lua에서 호출할 때 데이터 타입 호환성 문제를 해결하는 방법은 다음과 같습니다.

    1. PHP 함수에서 데이터 타입을 명시적으로 지정하세요. 예를 들어, PHP 함수에서 정수 값을 리턴하는 경우 `int` 타입을 지정하세요. 이로 인해 Lua Sandbox에서는 정수 값을 정확하게 예상할 수 있습니다.

    #hostingforum.kr
    php
    
    function myFunction(): int {
    
        return 10;
    
    }
    
    


    2. Lua Sandbox에서 데이터 타입을 변환하세요. 예를 들어, PHP 함수에서 부동소수점 값을 리턴하는 경우 Lua Sandbox에서 정수 값을 변환할 수 있습니다. 이로 인해 오류가 발생하지 않습니다.

    #hostingforum.kr
    lua
    
    local function convertFloatToInt(floatValue) {
    
        return math.floor(floatValue)
    
    }
    
    
    
    -- PHP 함수가 리턴하는 부동소수점 값을 정수 값으로 변환
    
    local intValue = convertFloatToInt(myFunction())
    
    


    3. Lua Sandbox의 데이터 타입 호환성 설정을 확인하세요. Lua Sandbox 버전 1.4에서는 데이터 타입 호환성 설정이 가능합니다. 예를 들어, `luaSandbox.setPhpTypeMapping('float', 'number')`를 사용하여 부동소수점 값을 Lua Sandbox에서 숫자 타입으로 변환할 수 있습니다.

    #hostingforum.kr
    lua
    
    luaSandbox.setPhpTypeMapping('float', 'number')
    
    


    위 방법 중 하나를 사용하여 데이터 타입 호환성 문제를 해결할 수 있습니다.

    2025-06-06 12:07

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,540건 / 91 페이지

검색

게시물 검색