Update PHP 5.3.1 naar 5.5.3 problemen met Class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

24/11/2013 04:05:37
Quote Anchor link
Hallo medeleden,

Ik zit met het volgende ik heb vandaag mijn PHP geupgrade naar PHP 5.5.3
Maar nu werkt mijn site niet meer ik krijg het volgende te zien

Notice: Undefined variable: Func in header.php on line 4

Fatal error: Call to a member function IsInternetExplorer() on a non-object in header.php on line 4

Dit is de code die ik gebruik

header.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if( $Func->IsInternetExplorer() )
        die( '<h1>This page is not designed for Internet Explorer. Please use other browsers such as Firefox.</h1>' );
?>



Dit staat er in mijn functions.php script


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class Func
{
public function IsInternetExplorer()
{

    if( preg_match( '/MSIE/i', $_SERVER['HTTP_USER_AGENT'] ) )
        return TRUE;
    return FALSE;
}
}

?>



Met mijn vorige PHP 5.3.1 werkte dit gewoon zoals het hoorde.
Waar kan het misgaan?

Met vriendelijke groet,

Thomas de Vries
Gewijzigd op 24/11/2013 04:06:57 door Thomas de vries
 
PHP hulp

PHP hulp

29/03/2024 08:26:19
 
Dos Moonen

Dos Moonen

24/11/2013 09:07:58
Quote Anchor link
$Func is blijkbaar geen object.

We hebben meer aan de regels bij $Func = ...bla...
 
Ward van der Put
Moderator

Ward van der Put

24/11/2013 09:48:38
Quote Anchor link
Je kunt de methode static maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class Func
{
    public static function IsInternetExplorer()
    {

        if (preg_match('/MSIE/i', $_SERVER['HTTP_USER_AGENT'])) {
            return true;
        }

        return false;
    }
}

?>

Daarna kun je deze als functie gebruiken zonder Func te instantiëren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (Func::IsInternetExplorer()) {

}

?>
 
Ivo P

Ivo P

24/11/2013 17:18:03
Quote Anchor link
Maar met de gegeven code had dit ook in versie 5.3 niet moeten werken.

Ik denk eerder dat TS in php.ini eerder de error reporting uit had staan, en dat die nu wel aanstaat.
 
Thomas de vries

thomas de vries

25/11/2013 10:11:47
Quote Anchor link
Opgelost.
Bleek een probleem te zijn met mssql lib die kon die niet laden en vanuit daaruit kon die de rest ook niet laden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.