|
|
|
|
|
для: Maxam
(03.11.2012 в 04:29)
| | >Не знал, кстати, что можно так
Не можно так, а так как требуется, то есть, например, зная, что отрицательные числа тоже вычисляются как true, но нам не важно это, а важно только чтобы результат был не равен 0, то достаточно было бы условия:
if($k = $m-$n) {действия}
И в скобки это выражение ставить нужно было бы в том случае, если далее в условии еще есть операции сравнения/присваивания.
>А зачем в условии $j = $m/$n? Что-то вроде делиться ли?
Это просто пример с двумя выражениями в условии. Если будет выполнено первое условие (не нулевой результат первой операции), то будут разделены переменные, и если результат деления также не будет равен 0, то будет выполнено условие проверки, и работаем с результатами выражений - переменными $k и $j. Вот весь смысл выражения.
А смысл делить строки на строки, или строки на числа? Если переменные приходят извне, и вы не уверены в их достоверности, то сперва нужно удостовериться в их типе, и только тогда можно и арифметикой заниматься с ними. | |
|
|
|
|
|
|
|
для: confirm
(02.11.2012 в 16:13)
| | Спасибо )
Не знал, кстати, что можно так: ($k = $m-$n)>0 Теперь домыслил )
А зачем в условии $j = $m/$n? Что-то вроде делиться ли? Когда это условие может не выполниться? Только если $n равно нулю или $m или $n будут не числами. Нет? | |
|
|
|
|
|
|
|
для: Maxam
(02.11.2012 в 15:29)
| | Ну так у вас вопрос звучал - "зачем нужна?", а не "что делает?" )
В РНР есть дублирование, в том смысле, что можно было и не "раскидывать" по нескольким функция то, что каждая из них может делать. Но в данном случае упрекнуть не в чем разработчиков.
Как из вашей же темы об условии. Надо знать, что в условии if выражение вычисляется в булево значение. То есть, если мы хотим узнать истинно ли выражение, то пишем if(выражение), а если нужно узнать ложно ли выражение, то берем отрицание вычисленного булево значения - if(!выражение).
Но то, что выражение вычисляется в булево значение, совсем не означает, что нельзя получить и булево значение результата, и само значение результата. Например, нам надо вычесть из переменной $m переменную $n, и если результат более 0, то продолжить операции над результатом вычитания. Последовательно это выглядело бы так:
<?
$m = 5;
$n = 3;
if($m-$n>0) {
//получаем результат выражения
$k = $m-$n;
//используем его
echo $k;
}
|
А можно поступить иначе, причем проверим два выражения и получим два результата:
<?
$m = 5;
$n = 3;
if(($k = $m-$n)>0 && $j = $m/$n) {
//используем результат выражений,
//если булево(!) значение их равно true
echo $k * $j;
}
|
Заметьте, что первое выражение условия записано в скобки. И делается это по двум причинам:
1) нам нужно проверить больше ли нуля результат;
2) в РНР левое сравнение, и если бы мы даже не проверяли на >0, и убрали бы скобки, мы бы в качестве первого значение получили бы не результат вычитания (2), а булево значение результата (1).
В руководстве, в книгах, не всегда все описано полностью, так что нужно знать основы, возможности функций, и домысливать, домысливать, и еще раз домысливать. ) | |
|
|
|
|
|
|
|
для: confirm
(01.11.2012 в 15:33)
| | Правильно ли понимаю. То, что символы строки можно получать как будто по элементам массива понял сам, опытным путём. В документациях не читал. Вот и уточнил. | |
|
|
|
|
|
|
|
для: confirm
(01.11.2012 в 16:19)
| | Исправлюсь. | |
|
|
|
|
|
|
|
для: Maxam
(01.11.2012 в 16:11)
| | Да я никак не хочу, и РНР - что $per, что $her все равно :) Это вам скорее всего надо, потому как удобно искать потом среди не $per_1 и т.д., а среди осмысленного. | |
|
|
|
|
|
|
|
для: confirm
(01.11.2012 в 15:42)
| | Хорошо, как хотите :) | |
|
|
|
|
|
|
|
для: Maxam
(01.11.2012 в 15:21)
| | Если по русски, значит и пишите $переменная, а в английском это будет никак не $per. Для примера можно и проще $s - краткое от string, ну или $x - для любых неопределенных. | |
|
|
|
|
|
|
|
для: Maxam
(01.11.2012 в 15:23)
| | Ну а к чему тогда такой вопрос? | |
|
|
|
|
|
|
|
для: Maxam
(31.10.2012 в 23:25)
| | Я просто хотел сказать, что не обязательно делать так, когда мне нужен первый символ строки:
<?php
$per='Text';
$split=str_split($per);
echo $split[0]; // T
?>
| , а достаточно так:
<?php
$per='Text';
echo $per[0]; // T
?>
|
| |
|
|
|
|