readline_callback_handler_install()
readline_callback_handler_install() — Initializes the readline callback interface and terminal, prints the prompt and returns immediately.
Built-in function of PHP 8.5. The manual lists it as available in PHP 5 >= 5.1.0, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
Sets up a readline callback interface then prints prompt and immediately returns. Calling this function twice without removing the previous callback interface will automatically and conveniently overwrite the old interface.
Signature
readline_callback_handler_install(string $prompt, callable $callback): true
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $prompt | string | The prompt message. |
| $callback | callable | The callback function takes one parameter; the user input returned. |
Return value
Always returns true.
Example
A runnable snippet:
function rl_callback($ret) { global $c, $prompting; echo "You entered: $ret\n"; $c++; if ($c > 10) { $prompting = false; readline_callback_handler_remove(); } else { readline_callback_handler_install("[$c] Enter something: ", 'rl_callback'); } } $c = 1; $prompting = true; readline_callback_handler_install("[$c] Enter something: ", 'rl_callback'); while ($prompting) { $w = NULL; $e = NULL; $n = stream_select($r = array(STDIN), $w, $e, null); if ($n && in_array(STDIN, $r)) { // read a character, will call the callback when a newline is entered readline_callback_read_char(); } } echo "Prompting disabled. All done.\n";
Changelog
| Version | Change |
|---|---|
| 8.5.0 | The return type is true now; previously, it was bool. |
See also
readline_callback_handler_remove(), readline_callback_read_char(), stream_select()
All PHP 8.5 built-in functions
Reference card built from the PHP manual page readline_callback_handler_install() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.