[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться(
Гость_Дмитрий
Здравствуйте! Скачал курс уроков по php с вашего форума, и столкнулся с проблемой при написании скрипта (точней с не пониманием).

прокомментировал немножко код, как я его понял..

// Если есть в папке дата файл с именем 1
if(file_exists('data/'. $file))
{
// то мы получаем содержимое файла и закидываем в массив $posts
$posts = unserialize(file_get_contents('data/'. $file));
// здесь мы вытягиваем все ключи в переменную $keys
$keys = array_keys($posts);


НИЖЕ СТРОЧКА с вытягиванием максимального ключа не понятно :(
Какой ключ максимальный получиться? Что туда попада
ет?
 $id = max($keys) + 1;
// здесь я так понимаю мы считаем сколько сообщений в файле
$cnt = count($posts);

Собственно на этом месте повис :(
Подправьте меня если что-то не так



Спустя 3 минуты, 7 секунд (18.08.2012 - 15:47) Guest написал(а):
$id = max($keys) + 1; и что здесь значит +1 ?

Спустя 54 минуты, 27 секунд (18.08.2012 - 16:41) kollega написал(а):
Я особо объяснять не умею, но попробую. У тебя в файле есть массив:

$posts =
Array
(
[
6] => Array
(
[
date] => 18-08-2012
[name] => Cергей
[mess] => Комментарий №6
)

[
7] => Array
(
[
date] => 18-08-2012
[name] => sad
[mess] => Комментарий №7
)

[
8] => Array
(
[
date] => 18-08-2012
[name] => sad
[mess] => Комментарий №8
)

[
9] => Array
(
[
date] => 18-08-2012
[name] => s
[mess] => Комментарий №9
)

[
10] => Array
(
[
date] => 18-08-2012
[name] => s
[mess] => Комментарий №10
)

после обработки функцией array_keys(), ты получаешь вот такой массив:

$keys =
Array
(
[
0] => 6
[1] => 7
[2] => 8
[3] => 9
[4] => 10
)

Далее идет
max($keys)+1
тут:
max() вернет значение наибольшего из элементов массива $keys (в приведенном мной случае 10). Дальше мы к этому значению прибавляем 1, и получаем 11. 11 - это ключ для вставки следующего комментария(внимательно посмотри на первый приведенный мною массив и ты увидишь, что там последний ключ = 10, следовательно следующая запись будет с ключом 11, вот мы его и получили)

далее идет
$cnt = count($posts)
тут:
count() ты узнаешь количество элементов в массиве $post (в приведенном мной случае это 5);

И если ты дальше посмотришь код, то ты увидишь, что переменная $cnt проверяется на максимальное число сообщений на странице.
if($cnt >= NUM_POSTS) 
{
++$file;
unset($posts);
}

И если $cnt больше числа добавляемых на одну страницу сообщений, то запись массива с сообщениями пойдет в другой файл(в файл с другим номером страницы увеличенным на 1(это нам показывает запись: "++$file" ))

Ну вот, как-то так. Особо строго не судите. Объяснил, как смог.

Спустя 9 минут, 11 секунд (18.08.2012 - 16:50) Гость_Дмитрий написал(а):
Спасибо тебе большое, все понятно и доходчиво объяснил smile.gif

Спустя 2 дня, 23 часа, 21 минута, 55 секунд (21.08.2012 - 16:12) Guest написал(а):
Ребят помогите, снова в процессе обучения возник вопрос..

Есть вот эта функция

function pageMenu($page, $file)   
{
$menu = ' | ';
for($i = 1; $i <= $file; ++$i)
if($page == $i)
$menu .= '<strong>'. $i .'</strong> | ';
else
$menu .= '<a href="?page='. $i .'">'. $i .'</a> | ';

return $menu;
}


не совсем понимаю как она работает :(

еще и эта строка (

$page = !empty($_GET['page']) ? $_GET['page'] : 1;

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.