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
komentāri