downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Вълшебни константи> <Константи
Last updated: Thu, 17 Sep 2009

view this page in

Синтаксис

Можете да дефинирате константа посредством функциятаdefine() или чрез ключовата дума const извън дефиницията на клас, от PHP 5.3.0. Веднъж дефинирана, константата никога повече не може да бъде променяна или отменяна.

В константи могат да се съхраняват единствено скаларни данни ( boolean , integer , float и string ). По принцип е възможно да дефинирате и данни от тип resource , но това трябва да бъде избягвано, тъй като може да доведе до неочаквани резултати.

Можете да вземете стойността на константа като просто укажете името й. За разлика от променливите, пред константа не трябва да слагате $. Можете също да използвате функцията constant(), за да получите стойността на константа, в случай, че желаете да получите името на константата динамично. За списък с всички дефинирани константи, използвайте get_defined_constants().

Забележка: Константите и (глобалните) променливи са в различни пространства от имена (namespaces). Това означава, че TRUE и $TRUE обикновено са различни.

Ако използвате недефинирана константа, PHP приема, че имате предвид името на самата константа, също както ако сте я извикали като string (CONSTANT и "CONSTANT"). Когато това се случи, ще бъде изведена грешка от ниво E_NOTICE. Вижте също раздела, в който се повдига въпросът защо $foo[bar] е погрешно (освен ако преди това не сте дефинирали с define() bar като константа). Ако просто искате да проверите дали дадена константа е дефинирана, използвайте функцията defined().

Това са разликите между константи и променливи:

  • Константите нямат знак за долар ($) пред тях;
  • Константите могат да бъдат дефинирани единствено посредством функцията define(), а не чрез обикновено установяване;
  • Константите могат да бъдат достъпвани където и да е без оглед на правилата за обхват на променливите;
  • Веднъж дефинирани, константите не могат да бъдат премахвани или дефинирани повторно;
  • Константите могат да имат само скаларни стойности.

Example #1 Дефиниране на константи

<?php
define
("CONSTANT""Здравей свят.");
echo 
CONSTANT// извежда "Здравей свят."
echo Constant// извежда "Constant" и пуска съобщение (notice).
?>

Example #2 Дефиниране на константи посредством ключовата дума const

<?php
// Работи от PHP 5.3.0
const CONSTANT 'Здравей свят';

echo 
CONSTANT;
?>

Вж. също Класови константи.



add a note add a note User Contributed Notes
Синтаксис
uramihsayibok, gmail, com
09-Aug-2009 06:54
Don't let the comparison between const (in the global context) and define() confuse you: while define() allows expressions as the value, const does not. In that sense it behaves exactly as const (in class context) does.

<?php

// this works
/**
 * Path to the root of the application
 */
define("PATH_ROOT", dirname(__FILE__));

// this does not
/**
 * Path to configuration files
 */
const PATH_CONFIG = PATH_ROOT . "/config";

// this does
/**
 * Path to configuration files - DEPRECATED, use PATH_CONFIG
 */
const PATH_CONF = PATH_CONFIG;

?>

Вълшебни константи> <Константи
Last updated: Thu, 17 Sep 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites