
SwooleHttpResponse::write 함수는 HTTP 응답에 데이터를 쓰는 데 사용됩니다. 이 함수의 첫 번째 인자는 string, int, float, array, object, true, false, null 중 하나일 수 있습니다.
array를 사용하여 HTTP 응답에 데이터를 쓰는 방법은 다음과 같습니다.
1. key-value 쌍이 없는 array: 이 경우, array의 모든 요소가 HTTP 응답의 본문에 추가됩니다. 예를 들어, `SwooleHttpResponse::write(['a', 'b', 'c']);`는 HTTP 응답의 본문에 "a", "b", "c"가 추가됩니다.
2. key-value 쌍이 있는 array: 이 경우, array의 key-value 쌍이 HTTP 응답의 본문에 추가됩니다. 예를 들어, `SwooleHttpResponse::write(['a' => '1', 'b' => '2']);`는 HTTP 응답의 본문에 "a=1&b=2"가 추가됩니다.
array의 key-value 쌍이 있을 경우, key-value 쌍의 key와 value가 string, int, float, array, object, true, false, null 중 하나일 수 있습니다.
- key-value 쌍의 key가 string일 경우: 예를 들어, `SwooleHttpResponse::write(['a' => '1', 'b' => '2']);`는 HTTP 응답의 본문에 "a=1&b=2"가 추가됩니다.
- key-value 쌍의 value가 array일 경우: 예를 들어, `SwooleHttpResponse::write(['a' => ['1', '2'], 'b' => '2']);`는 HTTP 응답의 본문에 "a=1&2&b=2"가 추가됩니다.
- key-value 쌍의 key가 array일 경우: 이 경우는 허용되지 않습니다. 예를 들어, `SwooleHttpResponse::write(['a' => ['1', '2'] => '2']);`는 에러를 발생시킵니다.
- key-value 쌍의 value가 object일 경우: 예를 들어, `SwooleHttpResponse::write(['a' => (object)['1' => '2'], 'b' => '2']);`는 HTTP 응답의 본문에 "a=1&2&b=2"가 추가됩니다.
- key-value 쌍의 key가 true/false/null일 경우: 이 경우는 허용되지 않습니다. 예를 들어, `SwooleHttpResponse::write(['a' => true => '2']);`는 에러를 발생시킵니다.
- key-value 쌍의 value가 true/false/null일 경우: 예를 들어, `SwooleHttpResponse::write(['a' => true, 'b' => '2']);`는 HTTP 응답의 본문에 "a=1&b=2"가 추가됩니다.
따라서, SwooleHttpResponse::write 함수의 array 인자는 key-value 쌍이 있는 array 또는 key-value 쌍이 없는 array일 수 있습니다. array의 key-value 쌍의 key와 value는 string, int, float, array, object, true, false, null 중 하나일 수 있습니다. array의 key-value 쌍의 key가 array일 경우는 허용되지 않으며, key-value 쌍의 key가 true/false/null일 경우는 허용되지 않습니다.
2025-08-07 08:34