phpbar.de logo

Mailinglisten-Archive

[php] anzahl funktionsparameter ermitteln

[php] anzahl funktionsparameter ermitteln

markus espenhain metwo at gmx.net
Die Okt 21 11:14:30 CEST 2003


> Guten Morgen, Markus! :-)
> 
> Am Dienstag, 21. Oktober 2003 02:09 schrieb markus espenhain:
> > gibt's eine moeglichkeit die anzahl von einer funktion geforderten 
> > Parameter zu ermitteln? (function func ($x,$y) = 2)
> 
> Guck Dir bitte mal die Funktionen zur Funktionsbehandlung an:
> 
http://de3.php.net/manual/de/ref.funchand.php

guten morgen

den eintrag im manual hab ich gesehen - ich finde da aber nur methoden
die mir die anzahl der parameter zurueck geben die einer funktion
uebergeben wurden und nicht die anzahl von parametern die eine funktion
bei ihrem aufruf verlangt - oder ueberseh ich da was?
ich hab das gestern dann noch so geloest - @call_user_func_array (array
(&$obj,$cmd),$args); - und das geht auch erst mal 

> > ... und gleich noch ne frage - warum bekomme ich bei - in_array
> > ($obj,$arr) - den fehler das es der falsche datentyp fuer's erste 
> > argument ist - sollte doch gehen oder?

> Wie sieht Dein Code denn aus? Irgendein Fehler wird schon drin sein, 
> sonst wuerde PHP nicht meckern. :-) Ich habe mir gerade noch einmal
die 
> Funktionsbeschreibung durchgelesen:

> http://de3.php.net/manual/de/function.in-array.php

> Mein Erklaerungsansatz fuer Dein Problem:
> Du hast den optionalen dritten Parameter der Funktion gesetzt, und
zwar 
> auf TRUE. In diesem Falle passiert dies:

> "Ist der dritte Parameter strict auf TRUE gesetzt, prüft in_array()
auch 
> die Typen von needle in haystack."

> D.h. es koennte sein, dass der Datentyp, den Du bei $obj uebergibst, 
> nicht mit dem Datentyp eines oder mehrerer Elemente in $array 
> uebereinstimmt. Folglich kommt eine Fehlermeldung, weil der Datentyp
in 
> dieser Konstellation uebereinstimmen muss.

... leider nicht - der dritte parameter ist nicht gesetzt und mein code
dazu sieht so aus:

function func (&$obj)
{
	if (!is_object ($obj) || in_array ($obj,$this->arr))
		return false;

	$this->arr[] = $obj;
	return true;
};

der gleiche fehler kommt auch bei array_search ()

danke
markus


php::bar PHP Wiki   -   Listenarchive