downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

ReflectionParameter::isDefaultValueConstant> <ReflectionParameter::isCallable
[edit] Last updated: Fri, 24 May 2013

view this page in

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3)

ReflectionParameter::isDefaultValueAvailableVérifie si une valeur par défaut est disponible pour le paramètre

Description

public bool ReflectionParameter::isDefaultValueAvailable ( void )

Vérifie si une valeur par défaut est disponible pour le paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

TRUE si une valeur par défaut est disponible pour le paramètre, FALSE sinon.

Voir aussi



add a note add a note User Contributed Notes ReflectionParameter::isDefaultValueAvailable - [1 notes]
up
0
php at marcyes dot com
1 year ago
A quick gotcha that I wasn't aware of, suppose you have a function definition like this:

<?php
function foo(array $bar = array('baz' => ''),$che){}
?>

And you want to check if $bar has a default value:

<?php
$rfunc
= new ReflectionFunction('foo');
$rparams = $rfunc->getParams();

echo
$rparams[0]->isDefaultValueAvailable() ? 'TRUE' : 'FALSE';
?>

That will echo 'FALSE' because $che has no default value so $bar becomes required and the Reflection interface no long sees $bar's default value of array('baz' => '').

The solution is to give $che a default value also:

<?php
function foo(array $bar = array('baz' => ''),$che = null){}
?>

And then $bar's default value will be visible again.

While I understand why it does this, I still wish there was a way to get the default value without resorting to giving all params after it a default value also.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites