Einzelnen Beitrag anzeigen
Alt 22.09.2009, 19:39  
stayInside
Erfahrener Benutzer
 
Registriert seit: 06.11.2008
Beiträge: 208
stayInside befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] function.call-user-func-array: First argument is expected to be a valid ca

Moinsen,

habe seit geraumer Zeit ein Fehler den ich einfach nicht gefixt bekomme.

Fehler: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ...

Ich rufe Funktion mit Hilfe von einem Objekt auf. Hier der Code der Klasse.

PHP-Code:
final class Functions
{
    private static 
$objInstance;
    
    private 
$strFolder;

    public function 
__get($strKey)
    {
        
$this->strFolder ucfirst(mb_strtolower($strKey));

        return (
$this);
    }

    public function 
__call($strName, array $arrParam)
    {
        if (!
function_exists($strName) &&
            
file_exists(Registry :: get('SysFunctionsPath') . $this->strFolder '/' $strName '.func.php'))
        {
            require_once (
Registry :: get('SysFunctionsPath') . $this->strFolder '/' $strName '.func.php');
        }

        
$strFunction $this->strFolder '_' $strName;

        
$this->strFolder null;

        return (
call_user_func_array($strFunction$arrParam));
    }

    public static function 
getInstance()
    {
        if (!
is_object(self :: $objInstance))
        {
            
self :: $objInstance = new Functions();
        }

        return (
self :: $objInstance);
    }

Aufgerufen wird eine Funktion z.B. so:

PHP-Code:
$this->objFunctions->Input->setCookie(); 
Was mich verblüfft ist, das der Fehler nur bei der setCookie Funktion auftritt. Auch wenn ich diese umbenenne.

Die setCookie Funktion sieht bei mir dann so aus.

PHP-Code:
function Input_setCookie($strName$mixValue$intExpire 31536000$strPath '/'$strDomain null$blnSecure false$blnHTTPOnly false)
{
    if (
headers_sent())
    {
        throw new 
Exception('Headers already sent! [' __FUNCTION__ ']');
    }

    
$objFunctions Functions :: getInstance();

    if (
$strDomain === null)
    {
        
$strDomain str_replace('www'''parse_url($objFunctions->Environment->domain(), PHP_URL_HOST));
    }

    
$intExpire $objFunctions->Environment->time() + $intExpire;

    
setcookie($strName$mixValue$intExpire$strPath$strDomain$blnSecure$blnHTTPOnly);

Jemand eine Idee wie ich den Fehler fixen kann?
stayInside ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten