|
|
|
| Я либо уже сильно туплю либо условие так и должно быть
<?
if((($_POST['alias_type'] != 0 && $a != 0) || ($_POST['alias_type'] == 0 && $a == 0)) && $alias === "")
|
может его можно както покороче написать?) | |
|
|
|
|
|
|
|
|
для: sl1p
(05.06.2010 в 22:43)
| | ($_POST['alias_type'] != 0 && $a != 0) || ($_POST['alias_type'] == 0 && $a == 0) - здесь вы ставите условие выбрать ненулевые значения ИЛИ нулевые - если будет найдено ненулевое значение - оно будет выбрано, если нулевое- тоже будет выбрано. Непонятное какое-то условие...
$alias === "" - непонятно, зачем проверять по типу. | |
|
|
|
|
|
|
|
для: Лена
(05.06.2010 в 23:01)
| | это условие в цикле, например
foreach(array(0,1,2) as $a) {
}
|
$_POST['alias_type'] это радио кнопка.
тобишь $a == 0 будет всегда, но не всегда будет $_POST['alias_type'] == 0, вот
$alias === "" - непонятно, зачем проверять по типу.
я так всегда проверяю действительно ли пуста строка.
например если я не знаю какой тип будет в переменной (int) или (string)
я делаю так:
if(strval($str) === "")
правильно ли это? | |
|
|
|
|
|
|
|
для: sl1p
(05.06.2010 в 23:18)
| | >
foreach(array(0,1,2) as $a) {
}
$_POST['alias_type'] это радио кнопка.
тобишь $a == 0 будет всегда, но не всегда будет $_POST['alias_type'] == 0, вот
Еще раз не поняла :)
Я вам показала, что вы ставите в условии ,как бы так сказать, два взаимоисключающих сравнения, которые в конечном счете приводят к тому, что нам становится все равно, было ли это условие или нет.
Как это $a == 0, если у вас массив array(0,1,2)? Откуда берется foreach(array(0,1,2) as $a) {
>правильно ли это?
gettype() посмотрите. | |
|
|
|
|
|
|
|
для: Лена
(05.06.2010 в 23:34)
| | Откуда берется foreach(array(0,1,2) as $a) {
ну это не важно :)
вобщем я сам запутался и получилось проехать это условие.
gettype() посмотрите.
причём здесь эта функция если я просто проверяю что строка не пустая, не должна проходить именно пустая строка :)
т.е. если сравнивать $alias == "" тогда 0, например пройдет :) | |
|
|
|
|
|
|
|
для: sl1p
(06.06.2010 в 01:17)
| |
($_POST['alias_type'] != 0 && $a != 0) || ($_POST['alias_type'] == 0 && $a == 0)
|
по правилу логике, это выражение вернет true, если $_POST['alias_type'] и $a - различны (одно - истина, второе ложно)
можно заменить как говорили:
$_POST['alias_type'] XOR $a
|
в итоге получится:
($_POST['alias_type'] XOR $a)&& $alias === ""
|
| |
|
|
|
|
|
|
|
для: Tonik992
(06.06.2010 в 03:54)
| | Не могли бы вы разжевать?
Вот смотрю я по скобкам
($_POST['alias_type'] != 0 && $a != 0)
||
($_POST['alias_type'] == 0 && $a == 0)
|
и у меня складывается такая картина.
Чтобы выражение в целом дало true, то одна из скобок должна дать true. А для этого $_POST['alias_type'] и $a должны представлять из себя одновременно либо истину, либо ложь. Однако чтобы работал ваш код, $_POST['alias_type'] и $a должны одновременно представлять из себя и истину, и ложь. | |
|
|
|
|
|
|
|
для: Tonik992
(06.06.2010 в 03:54)
| | А = ИСТИНА и А = ЛОЖЬ, это отрицание суждения. Нужно проверять не состояния каждого из аргументов, а их равенство:
if($_POST['alias_type'] == $a && $alias === "")
|
или в вашем случае
if(!($_POST['alias_type'] XOR $a) ...)
|
| |
|
|
|
|
|
|
|
для: sl1p
(05.06.2010 в 22:43)
| |
if(((!$_POST['alias_type']) == (!$a)) && $alias === "")
|
| |
|
|
|