Examples tested against actual runtime. CI re-verifies continuously. Only documented examples are tested.
How to use
Install via yarn add locutus and import:
import { print_r } from 'locutus/php/var/print_r'.
Or with CommonJS: const { print_r } = require('locutus/php/var/print_r')
Use a bundler that supports tree-shaking so you only ship the functions you actually use.
Vite,
webpack,
Rollup, and
Parcel
all handle this. For server-side use this is less of a concern.
Examples
These examples are extracted from test cases that automatically verify our functions against their native counterparts.
#
code
expected result
1
print_r(1, true)
'1'
Dependencies
This function uses the following Locutus functions:
functionecho(...args: EchoValue[]): void { // discuss at: https://locutus.io/php/echo/ // parity verified: PHP 8.3 // original by: Philip Peterson // improved by: echo is bad // improved by: Nate // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Brett Zamir (https://brett-zamir.me) // revised by: Der Simon (https://innerdom.sourceforge.net/) // bugfixed by: Eugene Bulkin (https://doubleaw.com/) // bugfixed by: Brett Zamir (https://brett-zamir.me) // bugfixed by: Brett Zamir (https://brett-zamir.me) // bugfixed by: EdorFaus // note 1: In 1.3.2 and earlier, this function wrote to the body of the document when it // note 1: was called in webbrowsers, in addition to supporting XUL. // note 1: This involved >100 lines of boilerplate to do this in a safe way. // note 1: Since I can't imageine a complelling use-case for this, and XUL is deprecated // note 1: I have removed this behavior in favor of just calling `console.log` // note 2: You'll see functions depends on `echo` instead of `console.log` as we'll want // note 2: to have 1 contact point to interface with the outside world, so that it's easy // note 2: to support other ways of printing output. // revised by: Kevin van Zonneveld (https://kvz.io) // input by: JB // example 1: echo('Hello world') // returns 1: undefined
returnconsole.log(args.join(' ')) }
// php/var/print_r (target function module) typePrintValue = PhpRuntimeValue
functionprint_r(array: PrintValue, returnVal?: boolean): string | true { // discuss at: https://locutus.io/php/print_r/ // parity verified: PHP 8.3 // original by: Michael White (https://getsprink.com) // improved by: Ben Bryan // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Kevin van Zonneveld (https://kvz.io) // input by: Brett Zamir (https://brett-zamir.me) // example 1: print_r(1, true) // returns 1: '1'
// php/_helpers/_phpTypes (Locutus helper dependency) functionisPhpArrayObject(value) { returntypeof value === 'object' && value !== null }
functiontoPhpArrayObject(value) { if (isPhpArrayObject(value)) { return value }
return {} }
// php/strings/echo (Locutus dependency module) functionecho(...args) { // discuss at: https://locutus.io/php/echo/ // parity verified: PHP 8.3 // original by: Philip Peterson // improved by: echo is bad // improved by: Nate // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Brett Zamir (https://brett-zamir.me) // revised by: Der Simon (https://innerdom.sourceforge.net/) // bugfixed by: Eugene Bulkin (https://doubleaw.com/) // bugfixed by: Brett Zamir (https://brett-zamir.me) // bugfixed by: Brett Zamir (https://brett-zamir.me) // bugfixed by: EdorFaus // note 1: In 1.3.2 and earlier, this function wrote to the body of the document when it // note 1: was called in webbrowsers, in addition to supporting XUL. // note 1: This involved >100 lines of boilerplate to do this in a safe way. // note 1: Since I can't imageine a complelling use-case for this, and XUL is deprecated // note 1: I have removed this behavior in favor of just calling `console.log` // note 2: You'll see functions depends on `echo` instead of `console.log` as we'll want // note 2: to have 1 contact point to interface with the outside world, so that it's easy // note 2: to support other ways of printing output. // revised by: Kevin van Zonneveld (https://kvz.io) // input by: JB // example 1: echo('Hello world') // returns 1: undefined
returnconsole.log(args.join(' ')) }
// php/var/print_r (target function module) functionprint_r(array, returnVal) { // discuss at: https://locutus.io/php/print_r/ // parity verified: PHP 8.3 // original by: Michael White (https://getsprink.com) // improved by: Ben Bryan // improved by: Brett Zamir (https://brett-zamir.me) // improved by: Kevin van Zonneveld (https://kvz.io) // input by: Brett Zamir (https://brett-zamir.me) // example 1: print_r(1, true) // returns 1: '1'
Locutus is a community effort following
The McDonald's Theory:
we ship first iterations, hoping others will improve them.
If you see something that could be better, we'd love your contribution.