Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Зачем функция str_split() функция в PHP 5?

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: confirm   (03.11.2012 в 04:52)   письмо автору
 
   для: Maxam   (03.11.2012 в 04:29)
 

>Не знал, кстати, что можно так

Не можно так, а так как требуется, то есть, например, зная, что отрицательные числа тоже вычисляются как true, но нам не важно это, а важно только чтобы результат был не равен 0, то достаточно было бы условия:
if($k = $m-$n) {действия}
И в скобки это выражение ставить нужно было бы в том случае, если далее в условии еще есть операции сравнения/присваивания.

>А зачем в условии $j = $m/$n? Что-то вроде делиться ли?

Это просто пример с двумя выражениями в условии. Если будет выполнено первое условие (не нулевой результат первой операции), то будут разделены переменные, и если результат деления также не будет равен 0, то будет выполнено условие проверки, и работаем с результатами выражений - переменными $k и $j. Вот весь смысл выражения.

А смысл делить строки на строки, или строки на числа? Если переменные приходят извне, и вы не уверены в их достоверности, то сперва нужно удостовериться в их типе, и только тогда можно и арифметикой заниматься с ними.

  Ответить  
 
 автор: Maxam   (03.11.2012 в 04:29)   письмо автору
 
   для: confirm   (02.11.2012 в 16:13)
 

Спасибо )
Не знал, кстати, что можно так: ($k = $m-$n)>0 Теперь домыслил )

А зачем в условии $j = $m/$n? Что-то вроде делиться ли? Когда это условие может не выполниться? Только если $n равно нулю или $m или $n будут не числами. Нет?

  Ответить  
 
 автор: confirm   (02.11.2012 в 16:13)   письмо автору
 
   для: 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)>&& $j $m/$n) {
  
//используем результат выражений,
  //если булево(!) значение их равно true
  
echo $k $j;  
}

Заметьте, что первое выражение условия записано в скобки. И делается это по двум причинам:
1) нам нужно проверить больше ли нуля результат;
2) в РНР левое сравнение, и если бы мы даже не проверяли на >0, и убрали бы скобки, мы бы в качестве первого значение получили бы не результат вычитания (2), а булево значение результата (1).

В руководстве, в книгах, не всегда все описано полностью, так что нужно знать основы, возможности функций, и домысливать, домысливать, и еще раз домысливать. )

  Ответить  
 
 автор: Maxam   (02.11.2012 в 15:29)   письмо автору
 
   для: confirm   (01.11.2012 в 15:33)
 

Правильно ли понимаю. То, что символы строки можно получать как будто по элементам массива понял сам, опытным путём. В документациях не читал. Вот и уточнил.

  Ответить  
 
 автор: Maxam   (01.11.2012 в 22:33)   письмо автору
 
   для: confirm   (01.11.2012 в 16:19)
 

Исправлюсь.

  Ответить  
 
 автор: confirm   (01.11.2012 в 16:19)   письмо автору
 
   для: Maxam   (01.11.2012 в 16:11)
 

Да я никак не хочу, и РНР - что $per, что $her все равно :) Это вам скорее всего надо, потому как удобно искать потом среди не $per_1 и т.д., а среди осмысленного.

  Ответить  
 
 автор: Maxam   (01.11.2012 в 16:11)   письмо автору
 
   для: confirm   (01.11.2012 в 15:42)
 

Хорошо, как хотите :)

  Ответить  
 
 автор: confirm   (01.11.2012 в 15:42)   письмо автору
 
   для: Maxam   (01.11.2012 в 15:21)
 

Если по русски, значит и пишите $переменная, а в английском это будет никак не $per. Для примера можно и проще $s - краткое от string, ну или $x - для любых неопределенных.

  Ответить  
 
 автор: confirm   (01.11.2012 в 15:33)   письмо автору
 
   для: Maxam   (01.11.2012 в 15:23)
 

Ну а к чему тогда такой вопрос?

  Ответить  
 
 автор: 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
?>

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования