Показать сообщение отдельно

  #8  
Старый 02.03.2008, 17:40
temp_late
Познающий
Регистрация: 22.08.2006
Сообщений: 39
Провел на форуме:
69953

Репутация: 11
Arrow

Цитата:
Сообщение от .:EnoT:.  
temp_late
а почему ты не инициализировал переменную $t в самом цикле? и $t++ туда же не засунул? =\
Есть предположение, что на подсчет длины через функцию на каждом цикле будет тратиться больше ресурсов, чем если подсчитать однажды и просто цеплять результат уже из переменной, если мое мнение ошибочно поправьте меня.

Насчет $t++, согласен есть такое, можно, привычка.. вот научили на Pascale так делать. А что будет быстрее если сделать так?:

PHP код:
<?php
$text
='! ышвгфращфзышвгарзщыфшварышгвар!!!';
$char=3;// насколько делить
$sizet=strlen($text);
$t=1;
$out='';
for (
$i=0;$i<$sizet;$i++,$t++){    
    if(
$t>$char){$t=1;$out.='-';}
    
$out.=$text{$i};
}
echo 
$out;
?>
Цитата:
Сообщение от =.:EnoT:.  
Специально для таких целей существует функция str_split() ,которая бьёт строку на массивы и не нужно никаких извращений!)
<?php
$text = "ышвгфращфзышвгарзщыфшвар шгва";
$skoka = 3; //По сколько символов разбивать
$arr = str_split($text, $skoka);
for($i=0; $i < count($arr); $i++)
{
$str = $arr[$i]."-";
echo $str;
}
?>
В твоем коде логическая ошибка, функция str_split() кромсает строку в масив по 3 символа, и потом собирает масив в едино, прибавляя в конце '-'.
Ошибка в том что строка не всегда может делиться на три ровно, а тире по заданию нужно поставить через каждые 3 символа,
$text='1234567';
так будет выполнять твой код
123-
456-
7-
последние тире поставилось не через 3 символов, для этого нужно внести следующее условие в твой код:
PHP код:
<?php
$text 
"ышвгфращфзышвгарзщыфшварышгва";
$skoka 3//По сколько символов разбивать
$arr str_split($text$skoka);
for(
$i=0$i count($arr); $i++)
    {
    if (
strlen($arr[$i])==3){$str $arr[$i]."-";}
    else{
$str $arr[$i];}
    echo 
$str;
}
?>
тогда будет правильно, но мне кажется мой код будет проще, и рациональней использовать системные ресусры.


PS:Правильней было бы присвоить текст используя одинарный ковычки:
$text = 'ышвга';
//а так :
$text = "ышвга"; //он будет тратить больше ресурсов, ибо будет искать в текст переменные для их замены.
 
Ответить с цитированием