WP_Http_Curl::test( array $args = array() ): bool
- Since
- 2.7.0
- Source
wp-includes/class-wp-http-curl.php:420
Parameters
$argsarrayoptional- Array of request arguments. Default empty array.Default:
array()
Return
bool- False means this class can not be used, true means it can.
Cost profile
Measured from the compiled opcodes, not from a stopwatch. Every number here is identical on any machine that runs the same PHP version, and every function in core is ranked by these figures.
- Cost class
- Trivial
- Scaling
- Constant
- Instructions
- 11–19
- Plugin surface
- 1 hook
- Called by
- 0
Touches nothing outside its own arguments.
No loop in the body: the same number of instructions runs whatever you pass in.
Executed per call on PHP 8.4, depending on the branch taken. The body compiles to 20.
Third-party callbacks on 'use_curl_transport' run inside this call, and their cost is not bounded by anything here.
Nothing in core calls this; the cost is only what you spend yourself.
What it touches
- hookthird-party callbacks
apply_filters()called directly
What one call costs · 3 distinct outcomes
One number would be a lie: the work depends on which branch runs. These are every distinct cost WP_Http_Curl::test() can have, taken from its control-flow graph on PHP 8.4.
| When | Instructions | Calls it makes |
|---|---|---|
| always | 11–13 | apply_filters() |
| always | 12–14 | curl_version() |
| always | 17–19 | curl_version()apply_filters() |
Across PHP versions
| PHP | Compiled | Executed | Branches | Notes |
|---|---|---|---|---|
7.4 | 20 | 11–19 | 3 | Compiles to the same instructions |
8.1 | 20 | 11–19 | 3 | Compiles to the same instructions |
8.2 | 20 | 11–19 | 3 | Compiles to the same instructions |
8.3 | 20 | 11–19 | 3 | Compiles to the same instructions |
8.4 | 20 | 11–19 | 3 | Compiles to the same instructions |
Oldest PHP that compiles this body: 7.4. An instruction is not a fixed amount of time, so a version with the same count is not necessarily the same speed; what the count rules out is a difference in the work itself.
Hooks fired · 1
One hook fires while WP_Http_Curl::test() runs, in this order:
- apply_filters( use_curl_transport )filterline 443 (+23 into the body)
Filters whether cURL can be used as a transport for retrieving a URL.
Uses · 1
- apply_filters()Calls the callback functions that have been added to a filter hook.
Source
public static function test( $args = array() ) { if ( ! function_exists( 'curl_init' ) || ! function_exists( 'curl_exec' ) ) { return false; } $is_ssl = isset( $args['ssl'] ) && $args['ssl']; if ( $is_ssl ) { $curl_version = curl_version(); // Check whether this cURL version support SSL requests. if ( ! ( CURL_VERSION_SSL & $curl_version['features'] ) ) { return false; } } /** * Filters whether cURL can be used as a transport for retrieving a URL. * * @since 2.7.0 * * @param bool $use_class Whether the class can be used. Default true. * @param array $args An array of request arguments. */ return apply_filters( 'use_curl_transport', true, $args ); }History
Introduced in 2.7.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 6.9.7 tag, from
src/wp-includes/class-wp-http-curl.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.