scoop van define

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc Cools

Marc Cools

17/03/2009 20:58:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class F
{
    function
define($key, $Value, $ThrowException=true)
    {

        if( defined($key) )
        {

            if( $key == $value )
            {

                return true;
            }

            else
            {
                if( $ThrowException )
                {

                    throw new exception('Wrong definition of ' . $key . '.');
                }

                return false;
            }
        }

        else
        {
            define($key, $value);
        }
    }
}

F::define('TEST', 'waarde');
?>

Wat is de scoop van mijn defined variabele?
Hoe los ik dit op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if( $key == $value ) ?>

ik heb de waarde verbonden aan de waarde van $key nodig. Als het een variabele zou zijn dan kon ik $$key gebruiken. Maar hoe zit dat met constanten?

mvg,
Marc
Gewijzigd op 01/01/1970 01:00:00 door Marc Cools
 
PHP hulp

PHP hulp

19/04/2024 10:00:53
 
TJVB tvb

TJVB tvb

17/03/2009 21:58:00
Quote Anchor link
Define is een functie van php, daarom zal het niet gaan werken zoals jij het wil.
Je moet dus een andere functie naam nemen.
 
Jelmer -

Jelmer -

17/03/2009 22:29:00
Quote Anchor link
constanten, die je met define() dus maakt, hebben geen scope. Ze bestaan simpelweg overal. Althans, overal nadat je ze gedefinieerd hebt :)

Met de functie constant() kan je de waarde van een constante opvragen wanneer je z'n naam weet.
 
Bo az

Bo az

17/03/2009 22:31:00
Quote Anchor link
Misschien kan je iets met get_defined_constants() daarbij krijg je ook de waarde.

Edit:
Te laat, die van Jelmer lijkt beter.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Marc Cools

Marc Cools

18/03/2009 17:57:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class F
{
    function
defines($key, $value, $throw_exception=true)
    {

        if( defined($key) )
        {

            if( constant($key) == $value )
            {

                return true;
            }

            else
            {
                if( $throw_exception )
                {

                    throw new exception('Wrong definition of ' . $key . '.');
                }

                return false;
            }
        }

        else
        {
            define($key, $value);
        }
    }
}

F::defines('TEST', 'waarde');
?>

Dit zou beter moeten zijn.
Gewijzigd op 01/01/1970 01:00:00 door Marc Cools
 



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.