Может кто-то объяснить разницу между использованием
define('SOMETHING', true);
а также
$SOMETHING = true;
И, может быть, выгоды между тем или другим?
Я использую переменные везде и даже в файле типа конфигурации, который включен в каждую страницу, я все еще использую переменные, поскольку я не вижу, почему использовать метод define.
DEFINE делает константу, а константы глобальны и могут использоваться где угодно. Они также не могут быть переопределены, какие могут быть переменные.
Обычно я использую DEFINE для Configs, потому что никто не может с ним справиться после этого факта, и я могу проверить его где угодно без глобального доступа, что упростит проверку.
После определения «константа» не может быть изменена во время выполнения, тогда как обычное назначение переменных может.
Константы лучше подходят для таких вещей, как директивы конфигурации, которые не следует изменять во время выполнения. Кроме того, код легче читать (и поддерживать и передавать), если значения, которые должны быть постоянными, явно сделаны так.
define () делает переменную только для чтения по сравнению со стандартной переменной, которая поддерживает операции чтения и записи.
Существует также различие в сфере охвата.
В примере, указанном плакатом orignal, $SOMETHING
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 в D: \ xampp \ htdocs \ data \ index.php в строке 8 эй вы можете видеть меня вне функции