Open
Description
If you use brackets in function parameter PHPFunctionsScanner
will interpret this as a new function and the resulting parameter list is incorrect.
Example:
<?php
require_once 'vendor/autoload.php';
$quantity = 10;
$default = 5;
$string = <<<EOD
<?php
sprintf(_n("%d Comment", "%d Comments", ($quantity ?? $default), "domain"), ($quantity ?? $default));
EOD;
$scanner = new \Gettext\Utils\PhpFunctionsScanner($string);
$output = $scanner->getFunctions();
and output:
array(2) {
[0]=>
array(4) {
[0]=>
string(2) "_n"
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(10) "%d Comment"
[1]=>
string(11) "%d Comments"
[2]=>
NULL
}
[3]=>
NULL
}
[1]=>
array(4) {
[0]=>
string(7) "sprintf"
[1]=>
int(2)
[2]=>
array(2) {
[0]=>
NULL
[1]=>
string(6) "domain"
}
[3]=>
NULL
}
}
as you can see "domain" is associated with sprintf
function which is not true.
Metadata
Assignees
Labels
No labels