|
|
|
| Пока что только там смог придумать
define ('DB', 'xxx');
$chkdb = DB;
if (!empty($chkdb)) {echo DB;}
|
а просто if (!empty(DB)) {echo DB;} выдает ошибку
как лучше проверить чтобы константа имела не пустое значение | |
|
|
|
|
|
|
|
для: max_ivanov
(29.07.2010 в 15:36)
| | Зачем такая проверка может быть нужна в отношении константы?
Есть функция defined, для проверки наличия константы. | |
|
|
|
|
|
|
|
для: max_ivanov
(29.07.2010 в 15:36)
| | Если инициализация константы происходит явно:
define ('DB', 'xxx');
то зачем проверять, пустая ли она? А если динамически:
define ('DB', $somevar);
то просто проверяйте $somevar на пустоту перед объявлением константы:
<?php
if (!empty($somevar))
define ('DB', $somevar);
else
echo 'Переменная пуста, константа не объявлена';
|
| |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 16:17)
| | $somevar - это разве константа? | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 16:34)
| | В моем примере - это значение константы | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 16:55)
| | define ('DB', SOMEVAR), это я еще понимаю (ну или в нижнем регистре, хотя в верхнем удобнее для восприятия констант), но $somevar, это не константа, а тем более не ее значение. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 18:47)
| |
<?php
$somevar = 'Значение константы';
define ('DB', $somevar);
echo DB;
|
Так понятнее, о чем я?
Если значение константы неизвестно заранее, а определяется какой-либо переменной, то лучше перед определением этой константы проверить, не пусто ли значение переменной | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 18:56)
| | $n = 12;
Как вы будете проверять - установлена ли (пустая ли) переменная $n, или установлено ли (пустое ли) значение 12?
Я только местами константу со значеним в комменте поменял, торопливость. ) | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:02)
| | Не совсем понял вашего вопроса и то, как относится к теме, если честно | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 19:06)
| |
<?
define ('DB', "значение");
//так можно проверять?
if (!empty('значение'))....
//или тоже самое для переменной
$n = 5;
if (!empty(5)) .....
|
Такое возможно? | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:09)
| | Вы не так меня понимаете. Я не говорю проверять значение константы после ее объявления.
Я говорю, что, если значение константы объявляется динамически, например:
<?php
$int = (int) $_POST['someNum'];
define('DB', $int);
|
то вместо того, чтобы пытаться проверить на пустоту значение константы (и вытворять то, что предложил автор) лучше сделать так:
<?php
$int = (int) $_POST['someNum'];
if (!empty($int))
define('DB', $int);
else
echo 'Значение константы не может быть пустым';
|
Хотя пример грубый, т.к. то, может ли константа иметь значение 0, определяется условиями задачи | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 19:14)
| |
<?
if (!empty($somevar))
define ('DB', $somevar);
else
echo 'Переменная пуста, константа не объявлена';
|
Вот объясните что вы проверяете здесь - несуществующее (или может быть существующее) значение (которого вы собственно можете и не знать, в оличии от объявленного имени константы) константы? Как можно по значению узнать установлена ли константа/переменная. Такое можно "сотворить" только косвенно, обнаружив "похожий след" в чем-то.
$_POST['someNum'] - это вы по ключу вам известному проверяете его значение, а не с бухты барахты сразу "аля-ля значение" его значение. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:19)
| | По коду же видно, что наличие и значение константы в нём не проверяется, она здесь только ещё (возможно) будет объявлена, а может и не будет. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:19)
| | *Вздохнув*
Задача автора - проверить, не пустое ли значение у константы.
Я предложил проверять переменную (которая впоследствии станет значением константы) на пустоту перед тем, как объявлять константу. Сказав также, что если константа имеет постоянное значение (определено в коде ручками своими), то проверка не нужна в принципе | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 19:27)
| | Ах вон в чем дело, я то серый код автора не прочитал, а на вашу проверку сразу обратил внимание, мозги и завернулись - по неизвестному значению узнавать родителя. ) | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:36)
| | Бывает :) У нас тут (север) жара на солнце за 40 - мозг плавится, тоже все путаю, работу еле делаю) | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 19:40)
| | Кстати:
$chkdb = DB;
if (!empty($chkdb)) {echo DB;}
|
напечатает DB, то есть все определено и ОК полное!, если будет подавлен вывод ошибок. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:47)
| | Так мб лучше тогда
if (DB !== '') echo DB; | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 19:55)
| | А это уже проверка константы, хотя корявым способом, и с ошибками. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 19:58)
| | И почему-то там напечаталось два "равно"
Ну да ладно, мое предложение иное. | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 20:07)
| | Вот верное предложение:
автор: sms-send (29.07.2010 в 15:45) письмо автору
для: max_ivanov (29.07.2010 в 15:36)
все остальное от лукавого, да и приравнивать константу переменной, ну это как надеяться легким движением руки превратить лом в травинку. Смысла никакого. | |
|
|
|
|
|
|
|
для: sim5
(29.07.2010 в 20:09)
| | Но это же несколько иная задача.
Если брать как аналог переменную, то автор спрашивает, как сделать
!empty($variable)
А sms-send показал, как сделать
isset($variable)
Хотя, по правде сказать, у меня еще никогда задачи автора не возникало.. | |
|
|
|
|
|
|
|
для: neadekvat
(29.07.2010 в 20:17)
| | Задача автора, скорее всего, возникла от недопонимания назначений (а может и их сути) констант и переменных. | |
|
|
|