XSLTProcessor::setParameter

Set value for a parameter

&reftitle.description; public `bool` `XSLTProcessor::setParameter` `string` `namespace` `string` `name` `string` `value` public `bool` `XSLTProcessor::setParameter` `string` `namespace` `array` `options`

Sets the value of one or more parameters to be used in subsequent transformations with `XSLTProcessor`. If the parameter doesn't exist in the stylesheet it will be ignored.

&reftitle.parameters;

`namespace`

- The namespace URI of the XSLT parameter.

`name`

- The local name of the XSLT parameter.

`value`

- The new value of the XSLT parameter.

`options`

- An array of `name => value` pairs.

&reftitle.returnvalues;

&return.success;

&reftitle.errors;

Throws a ValueError if any of the arguments contain null bytes.

&reftitle.changelog;

&Version; | &Description;
8.4.0 | Now throws a ValueError if any of the arguments contain null bytes instead of silently truncating.
8.4.0 | It is now possible to set a parameter value containing both single and double quotes. Prior to PHP 8.4.0, this resulted in a warning.

&reftitle.examples;

### Changing the owner before the transformation

    <?php

    $collections = array(
        'Marc Rutkowski' => 'marc',
        'Olivier Parmentier' => 'olivier'
    );

    $xsl = new DOMDocument;
    $xsl->load('collection.xsl');

    // Configure the transformer
    $proc = new XSLTProcessor;
    $proc->importStyleSheet($xsl); // attach the xsl rules

    foreach ($collections as $name => $file) {
        // Load the XML source
        $xml = new DOMDocument;
        $xml->load('collection_' . $file . '.xml');

        $proc->setParameter('', 'owner', $name);
        $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
    }

    ?>

&reftitle.seealso;

- `XSLTProcessor::getParameter`
- `XSLTProcessor::removeParameter`