Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

array_pop($this->fonction(args)) plante. Pourquoi ?

1 réponse
Avatar
Thomas Harding
Programme incriminé: phpldapadmin
fichier : lib/server_functions.php
Contexte : libapache2-mod-php5 5.0.5-31 (rétroprté sur debian sarge)
Symptômes : plante silencieusement malgré error_reporting à debug.
(nota: il y a un callback, mais il semble fonctionner quand
je mets des cochoncetés ailleurs :)

$attrs = array_pop($this->search(null,dn_escape($dn),
'(objectClass=*)',array(),'base',false,$deref));
=> marche pas !

$result = $this->search(null,dn_escape($dn),
'(objectClass=*)',array(),'base',false,$deref);
$attrs = array_pop($result);
=> marche !

J'ai trouvé la panne par tatonnements, mais si elle est résolue
je ne comprend pas /pourquoi/ ça plante, sachant que la fonction
renvoie systématiquement un tableau...

Merci de vos lumières...
--
Thomas Harding

1 réponse

Avatar
flconseil
C'est parce que array_pop, non seulement renvoie le dernier element du
table passe en argument, mais supprime egalement cet element du
tableau. Si tu regardes la doc, tu voies que le tableau est passé par
référence, donc ça doit être une 'lvalue'.

Dans ton exemple, la deuxieme forme fonctionne car il peut modifier
$result.