1--TEST-- 2Test curl_setopt(_array)() with options that take callabes 3--EXTENSIONS-- 4curl 5--FILE-- 6<?php 7 8function testOption(CurlHandle $handle, int $option) { 9 try { 10 var_dump(curl_setopt($handle, $option, 'undefined')); 11 } catch (Throwable $e) { 12 echo $e::class, ': ', $e->getMessage(), PHP_EOL; 13 } 14 15 try { 16 var_dump(curl_setopt_array($handle, [$option => 'undefined'])); 17 } catch (Throwable $e) { 18 echo $e::class, ': ', $e->getMessage(), PHP_EOL; 19 } 20} 21 22$url = "https://example.com"; 23$ch = curl_init($url); 24testOption($ch, CURLOPT_PROGRESSFUNCTION); 25testOption($ch, CURLOPT_XFERINFOFUNCTION); 26testOption($ch, CURLOPT_FNMATCH_FUNCTION); 27testOption($ch, CURLOPT_WRITEFUNCTION); 28testOption($ch, CURLOPT_HEADERFUNCTION); 29testOption($ch, CURLOPT_READFUNCTION); 30 31?> 32--EXPECT-- 33TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_PROGRESSFUNCTION, function "undefined" not found or invalid function name 34TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_PROGRESSFUNCTION, function "undefined" not found or invalid function name 35TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_XFERINFOFUNCTION, function "undefined" not found or invalid function name 36TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_XFERINFOFUNCTION, function "undefined" not found or invalid function name 37TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_FNMATCH_FUNCTION, function "undefined" not found or invalid function name 38TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_FNMATCH_FUNCTION, function "undefined" not found or invalid function name 39TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_WRITEFUNCTION, function "undefined" not found or invalid function name 40TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_WRITEFUNCTION, function "undefined" not found or invalid function name 41TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_HEADERFUNCTION, function "undefined" not found or invalid function name 42TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_HEADERFUNCTION, function "undefined" not found or invalid function name 43TypeError: curl_setopt(): Argument #3 ($value) must be a valid callback for option CURLOPT_READFUNCTION, function "undefined" not found or invalid function name 44TypeError: curl_setopt_array(): Argument #2 ($options) must be a valid callback for option CURLOPT_READFUNCTION, function "undefined" not found or invalid function name 45