Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > foreach... echo vs print_r


Автор: D4rk 6.1.2007, 22:42
Товарищи! Я в недоумении... Написал вот такую вот функцию (записывает массив строк $diz в некий файл).
Код

function create_diz($num,$diz)
{
  // print_r($diz);
  if ($diz[0]="") return 0;
  $filename="$num.diz";
  if (!$handle=fopen($filename,'w')) { echo "Не могу создать файл <b>$filename</b>!<br>"; exit; }
  if (is_writable($filename))
  {
        foreach ($diz as $diz_num => $dizz)
        {
        // echo "diz[$diz_num] = $dizz\n";
        if ($dizz!="") { if (fwrite($handle,"$dizz\r\n")===FALSE) { echo "Не могу произвести запись в файл <b>$filename</b>!<br>"; exit; } }
        }
        fclose($handle);
  } else { echo "Файл $filename недоступен для записи!<br>"; exit; }
  return 1;
}


Закомментированные строчки выдают разные результаты...
Массив $diz следующий: $diz[0]="Фотогалерея 1"; $diz[1]="Фото 1"; $diz[2]="Фото 2"
При этом
print_r выдает:
Цитата

Array ( [0] => Фотогалерея 1 [1] => Фото 1 [2] => Фото 2 )

А foreach... echo:
Цитата

diz[0] = 
diz[1] = Фото 1 
diz[2] = Фото 2

 smile 

Автор: Wolf1994 6.1.2007, 22:51
 if ($diz[0]=="") return 0;


Автор: Mal Hack 6.1.2007, 22:51
Не понимаю, в чем сложности... Привел код к читаемому и логически адекватному виду... Все вывелось как надо.
Работу с файлами только закомментировал, чтобы не лишних файлов потом не оказалось.
Код
<pre><?php


function create_diz($num,$diz)
{
    /*
    $filename= $num . ".diz";
    
    $handle=fopen($filename,'w');
    
    if ( !$handle || !is_writable($filename)) 
    { 
        echo "Не могу создать файл <b>$filename</b>!<br>"; 
        exit; 
    }
     
    */
    foreach ($diz as $diz_num => $dizz)
    {
        echo "diz[" . $diz_num . "] = ". $dizz . "<br/>\n";
        /*
        if (!empty(Q$dizz) 
        { fwrite($handle,$dizz."\n");  }
        */
    }

  // fclose($handle);
}

  $diz[0]="Фотогалерея 1"; 
  $diz[1]="Фото 1"; 
  $diz[2]="Фото 2";
  
  create_diz(0,$diz);

?>

Автор: D4rk 6.1.2007, 22:53
Жэсть... Паскаль засорил мозги... Спасибо! smile Удалить тему?

Автор: Mal Hack 6.1.2007, 23:02
Цитата(D4rk @  6.1.2007,  22:53 Найти цитируемый пост)
Жэсть... Паскаль засорил мозги...

Ой да ландно, я вот одновременно на PHP отвечаю, тестируя код с форума, пишу на C# свое приложение и еще товарищу C++ объясняю в асе... Нормально...

Цитата(D4rk @  6.1.2007,  22:53 Найти цитируемый пост)
Удалить тему? 

А не сможешь smile

Автор: D4rk 6.1.2007, 23:04
А жаль... Чтобы меньше тупых вопросов было... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)