Digamos que tenemos una firma de método comoPHP por referencia parámetros y nulo por defecto
public static function explodeDn($dn, array &$keys = null, array &$vals = null,
$caseFold = self::ATTR_CASEFOLD_NONE)
podemos llamar fácilmente el método por omisión de todos los parámetros después de $dn
:
$dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com');
También podemos llamar el método con 3 parámetros:
$dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', $k, $v);
y con 4 parámetros:
$dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', $k, $v,
Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
Pero por qué es imposible llamar al método con la siguiente combinación de parámetros, por ejemplo:
$dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', $k, null,
Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$dn=Zend_Ldap_Dn::explodeDn('CN=Alice Baker,CN=Users,DC=example,DC=com', null, $v);
¿Cuál es la diferencia entre pasar null
al método y confiando en el valor por defecto? ¿Esta restricción está escrita en el manual? ¿Se puede eludir?
Esa es una idea de sintaxis interesante ... personalmente me gustaría ver la posibilidad de poner parámetros de funciones con nombre en la llamada, p. 'doSomething ($ var1, @ optionalParam4 = $ var2);'. –