Определить vs переменную в PHP
может кто-нибудь объяснить разницу между использованием
define('SOMETHING', true);
и
$SOMETHING = true;
и может быть преимущества между одним или другим?
Я использую переменные везде и даже в файле типа конфигурации, который включен в everypage, я все еще использую переменные, поскольку я не вижу, почему использовать метод define.
5 ответов:
DEFINE делает константу, а константы являются глобальными и могут использоваться в любом месте. Они также не могут быть переопределены, какие переменные могут быть.
Я обычно использую DEFINE для конфигураций, потому что никто не может возиться с ним после факта, и я могу проверить его в любом месте без global-ling, что упрощает проверку.
после определения "константа" не может быть изменена во время выполнения, тогда как обычное назначение переменной может.
константы лучше подходят для таких вещей, как директивы конфигурации, которые не должны изменяться во время выполнения. Кроме того, код легче читать (и поддерживать & handover), если значения, которые должны быть постоянными явно сделал так.
define () делает переменную только для чтения, по сравнению со стандартной переменной, которая поддерживает операции чтения и записи.
существует также разница в объеме.
в примере, приведенном оригинальным плакатом,
$SOMETHING
не будет доступен внутри функции, тогда какdefine('SOMETHING', true)
будет.
константа очень полезна, когда вы хотите получить доступ к данным внутри функции, проверьте это
<?php function data(){ define("app","hey you can see me from outside the function",false); $tech = "xampp"; } data(); echo $tech; echo app; ?>
Если вы используете переменную, вы никогда не получите внутреннее значение вот что я получаю
обратите внимание: неопределенная переменная: tech in D:\xampp\htdocs\data\index.php на линии 8 Эй, вы можете видеть меня снаружи функции