PHP maģiskās konstantes

Konstante ir identifikators vienkāršai vērtībai (skaitlis, teksts), kura skripta izpildes laikā nevar tikt mainīta. Konstantes ir reģistrjūtīgas un pēc labā stila lietojamas lieliem burtiem. Līdztekus daudzām konstantēm, kas ir automātiski pieejamas skripta izpildes laikā, vēl ir „maģiskās” konstantes, kuru vērtība atkarīga no vietas kur tā tiek nolasīta.

Konstante ir identifikators vienkāršai vērtībai (skaitlis, teksts), kura skripta izpildes laikā nevar tikt mainīta. Konstantes ir reģistrjūtīgas un pēc labā stila lietojamas lieliem burtiem.

define("FOO",     "something");

PHP skripta izpildes laikā ir pieejama čupa ar pre-definētām konstantēm. Piemēram: M_PI (3.1415926535898). Pilnu sarakstu var aplūkot šeit [1].

Izņēmums ir „maģiskās” konstantes, kuru vērtība atkarīga no vietas kur tā tiek izmantota [2].

Aplūkosim piemēru un kādas vērtības konstante atgriež:

<?php

$s = new Sample;
$s->test(123);

class Sample {

  function test($arg) {

    echo __LINE__ . "<br>";
    echo __FILE__ . "<br>";
    echo __DIR__ . "<br>";
    echo __FUNCTION__ . "<br>";
    echo __CLASS__ . "<br>";
    echo __METHOD__ . "<br>";
    echo __NAMESPACE__ . "<br>";

  }

}

 

Konstante

Apraksts

Vērtība

PHP_VERSION

 

5.2.6

__LINE__

Rindas numurs php failā

9

__FILE__

Pilnais faila ceļš. Ja tiek izmantota iekļautā failā (included), tad šī faila pilnais ceļš.

/var/www/sample.php

__DIR__

Darba mape, kurā atrodas fails. Analogs dirname(__FILE__) Pievienots kopš 5.3.0

__DIR__

__FUNCTION__

Uzrāda funkciju no kuras tiek izsaukta konstante.

test

__CLASS__

Uzrāda klases nosaukumu kurā konstante tiek izsaukta.

Sample

__METHOD__

Klases metodes nosaukums. Pievienots kopš 5.0.0

Sample::test

__NAMESPACE__

Nosaukumvietas vārds. Pievienots kopš 5.3.0

__NAMESPACE__

 

Starp citu __LINE__ noderīgi izmantojams kļūdaino sql vaicājumu meklēšanā. Piemēram:

$sql = 'SELECT * FROM nothing';
$result = mysql_query($sql) or die(mysql_error() . ' / 
                                   #' . __LINE__ . ', ' . __FILE__ . '<pre>' . $sql . '</pre>');

Rezultāt:

No database selected / #15, /var/www/sample.php

SELECT * FROM nothing

 

Izmantotie avoti:

1. http://www.php.net/manual/en/reserved.constants.php

2. http://www.php.net/manual/en/language.constants.predefined.php

Dalies:
Novērtē: 4 (5)
Skatīts: 649

komentāri



Ko lasa citi?