Use some PHP 7.1 features
authorTomas Mysik <tmysik@netbeans.org>
Mon, 24 Apr 2017 12:39:46 +0200
changeset 63851763913f11f4
parent 6367 3f11c7b68c32
child 6386 4c814dea6449
Use some PHP 7.1 features
php/sigfiles/generate.php
     1.1 --- a/php/sigfiles/generate.php	Tue Nov 22 08:54:47 2016 +0100
     1.2 +++ b/php/sigfiles/generate.php	Mon Apr 24 12:39:46 2017 +0200
     1.3 @@ -835,18 +835,9 @@
     1.4  	$i = 0;
     1.5  	foreach ($parameters as $parameter) {
     1.6  		if ($parameter['name'] != "...") {
     1.7 -			if ($i++ > 0) {
     1.8 -				print ", ";
     1.9 -			}
    1.10 -			$type = sanitizeType($parameter['type']);
    1.11 -			if ($type) {
    1.12 -				print "{$type} ";
    1.13 -			}
    1.14 -			if (@$parameter['isreference']) {
    1.15 -				print "&";
    1.16 -			}
    1.17 -                        print "\${$parameter['name']}";
    1.18 -
    1.19 +                        $type = sanitizeType($parameter['type']);
    1.20 +                        $nullable = false;
    1.21 +                        $param_value = '';
    1.22  			if (@$parameter['isoptional']) {
    1.23  				if (array_key_exists('defaultvalue', $parameter)) {
    1.24  					$value = $parameter['defaultvalue'];
    1.25 @@ -860,11 +851,33 @@
    1.26                                          } else {
    1.27                                              $value = "'{$value}'";
    1.28                                          }
    1.29 -                                        print " = {$value}";
    1.30 +                                        $param_value = " = {$value}";
    1.31  				} else {
    1.32 -					print " = null";
    1.33 +                                        $nullable = true;
    1.34 +                                        if (!$type) {
    1.35 +                                            $param_value = " = null";
    1.36 +                                        }
    1.37  				}
    1.38  			}
    1.39 +                    
    1.40 +			if ($i++ > 0) {
    1.41 +				print ", ";
    1.42 +			}
    1.43 +			if ($type) {
    1.44 +                                if ($nullable) {
    1.45 +                                    print "?";
    1.46 +                                }
    1.47 +				print "{$type} ";
    1.48 +			}
    1.49 +			if (@$parameter['isreference']) {
    1.50 +				print "&";
    1.51 +			}
    1.52 +                        print "\${$parameter['name']}";
    1.53 +                        
    1.54 +                        if ($param_value) {
    1.55 +                            print $param_value;
    1.56 +                        }
    1.57 +
    1.58  		}
    1.59  	}
    1.60  }
    1.61 @@ -876,6 +889,10 @@
    1.62  function print_parameters_ref ($paramsRef) {
    1.63  	$i = 0;
    1.64  	foreach ($paramsRef as $paramRef) {
    1.65 +            /* @var $paramRef ReflectionParameter */
    1.66 +            if ($paramRef->allowsNull()) {
    1.67 +                echo '?';
    1.68 +            }
    1.69  		if ($paramRef->isArray()) {
    1.70  			print "array ";
    1.71  		} else {
    1.72 @@ -1577,7 +1594,6 @@
    1.73          'bitmask',
    1.74          'name',
    1.75          'number',
    1.76 -        'void',
    1.77          'scalar',
    1.78      ])) {
    1.79          return '';