Habilita o uso de funções do PHP como funções XSLT

# XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctions — Habilita o uso de funções do PHP como funções XSLT

### Descrição

public function XSLTProcessor::registerPHPFunctions(array|string|null `$functions` = `null`): void

Este método habilita o uso de funções PHP como funções XSLT nas folhas de estilo XSL.

### Parâmetros

`functions`

  Use este parâmetro para permitir que apenas certas funções sejam chamadas a partir do XSLT.

  Este parâmetro pode ser um dos seguintes: uma string (um nome de função), um array indexado de nomes de funções ou um array associativo com chaves nos nomes de funções e valores associados sendo do tipo callable.

### Erros/Exceções

- Lança uma exceção ValueError se um nome de chamada de retorno não for válido.
- Lança uma exceção ValueError se `options` contiver uma opção inválida.
- Lança uma exceção ValueError s `overrideEncoding` for uma codificação desconhecida.
- Lança uma exceção TypeError se uma função de retorno informada não for chamável.

### Valor Retornado

Nenhum valor é retornado.

### Registro de Alterações

Versão | Descrição
--- | ---
8.4.0 | Nomes de retorno de chamada inválidos agora lançam uma exceção ValueError. Passar uma entrada que não pode ser chamada agora lança uma exceção TypeError.
8.4.0 | Agora é possível usar callables para funções de retorno ao usar `functions` com entradas de array.

### Exemplos

Exemplo #1 Simples chamada de função do PHP a partir de uma folha de estilos

    <?php
    $xml = <<<EOB
    <allusers>
     <user>
      <uid>bob</uid>
     </user>
     <user>
      <uid>joe</uid>
     </user>
    </allusers>
    EOB;
    $xsl = <<<EOB
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:php="http://php.net/xsl">
    <xsl:output method="html" encoding="utf-8" indent="yes"/>
     <xsl:template match="allusers">
      <html><body>
        <h2>Users</h2>
        <table>
        <xsl:for-each select="user">
          <tr><td>
            <xsl:value-of
                 select="php:function('ucfirst',string(uid))"/>
          </td></tr>
        </xsl:for-each>
        </table>
      </body></html>
     </xsl:template>
    </xsl:stylesheet>
    EOB;
    $xmldoc = new DOMDocument();
    $xmldoc->loadXML($xml);
    $xsldoc = new DOMDocument();
    $xsldoc->loadXML($xsl);

    $proc = new XSLTProcessor();
    $proc->registerPHPFunctions();
    $proc->importStyleSheet($xsldoc);
    echo $proc->transformToXML($xmldoc);
    ?>

### Veja Também

- DOMXPath::registerPhpFunctions() - Registra funções PHP como funções XPath

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open