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?