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 { ini_set } from 'locutus/php/info/ini_set'.
Or with CommonJS: const { ini_set } = require('locutus/php/info/ini_set')
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.
const isIniScalar = (value: IniCandidate): value is IniScalar => typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null
const isIniObject = (value: IniCandidate): value is IniObject => typeof value === 'object' && value !== null && !Array.isArray(value)
const isIniArray = (value: IniCandidate): value is IniEntryValue[] => Array.isArray(value) && value.every((item: IniCandidate) =>isIniEntryValue(item))
const isIniEntryValue = (value: IniCandidate): value is IniEntryValue => isIniScalar(value) || isIniObject(value) || isIniArray(value)
const isIniValue = (value: IniCandidate): value is Exclude<IniValue, undefined> => isIniEntryValue(value)
exportfunctionini_set(varname: string, newvalue: IniValue): IniValue | undefined { // discuss at: https://locutus.io/php/ini_set/ // parity verified: PHP 8.3 // original by: Brett Zamir (https://brett-zamir.me) // note 1: This will not set a global_value or access level for the ini item // example 1: ini_set('date.timezone', 'Asia/Hong_Kong') // example 1: ini_set('date.timezone', 'America/Chicago') // returns 1: 'Asia/Hong_Kong'
constsetArrayValue = () => { // Although these are set individually, they are all accumulated. if (typeof entry.local_value === 'undefined') { entry.local_value = [normalizedValue] return }
if (Array.isArray(entry.local_value)) { entry.local_value.push(normalizedValue) return }
exportfunctionini_set(varname, newvalue) { // discuss at: https://locutus.io/php/ini_set/ // parity verified: PHP 8.3 // original by: Brett Zamir (https://brett-zamir.me) // note 1: This will not set a global_value or access level for the ini item // example 1: ini_set('date.timezone', 'Asia/Hong_Kong') // example 1: ini_set('date.timezone', 'America/Chicago') // returns 1: 'Asia/Hong_Kong'
constsetArrayValue = () => { // Although these are set individually, they are all accumulated. if (typeof entry.local_value === 'undefined') { entry.local_value = [normalizedValue] return }
if (Array.isArray(entry.local_value)) { entry.local_value.push(normalizedValue) return }
const isIniScalar = (value: IniCandidate): value is IniScalar => typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null
const isIniObject = (value: IniCandidate): value is IniObject => typeof value === 'object' && value !== null && !Array.isArray(value)
const isIniArray = (value: IniCandidate): value is IniEntryValue[] => Array.isArray(value) && value.every((item: IniCandidate) =>isIniEntryValue(item))
const isIniEntryValue = (value: IniCandidate): value is IniEntryValue => isIniScalar(value) || isIniObject(value) || isIniArray(value)
const isIniValue = (value: IniCandidate): value is Exclude<IniValue, undefined> => isIniEntryValue(value)
functionini_set(varname: string, newvalue: IniValue): IniValue | undefined { // discuss at: https://locutus.io/php/ini_set/ // parity verified: PHP 8.3 // original by: Brett Zamir (https://brett-zamir.me) // note 1: This will not set a global_value or access level for the ini item // example 1: ini_set('date.timezone', 'Asia/Hong_Kong') // example 1: ini_set('date.timezone', 'America/Chicago') // returns 1: 'Asia/Hong_Kong'
constsetArrayValue = () => { // Although these are set individually, they are all accumulated. if (typeof entry.local_value === 'undefined') { entry.local_value = [normalizedValue] return }
if (Array.isArray(entry.local_value)) { entry.local_value.push(normalizedValue) return }
functionini_set(varname, newvalue) { // discuss at: https://locutus.io/php/ini_set/ // parity verified: PHP 8.3 // original by: Brett Zamir (https://brett-zamir.me) // note 1: This will not set a global_value or access level for the ini item // example 1: ini_set('date.timezone', 'Asia/Hong_Kong') // example 1: ini_set('date.timezone', 'America/Chicago') // returns 1: 'Asia/Hong_Kong'
constsetArrayValue = () => { // Although these are set individually, they are all accumulated. if (typeof entry.local_value === 'undefined') { entry.local_value = [normalizedValue] return }
if (Array.isArray(entry.local_value)) { entry.local_value.push(normalizedValue) return }
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.