php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° Π½Π° php (Π²Ρ‹Π²ΠΎΠ΄ мСню с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ)

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΌΠ΅Π½ΡŽΠ‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сайты ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мСню с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ сами Π½Π΅ Π·Π½Π°ΡŽΡ‚, какая Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΈΡ… сайту Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠŸΡ€ΠΈ создании сайтов ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄Π° мСню с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. Π’Π΅Π΄ΡŒ Ссли сайт Π±ΡƒΠ΄Π΅Ρ‚ с мСню Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ сайта Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ низкая. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ качСство ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ создания сайта, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ, с 1-ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈ 1-ΠΌ запросом ΠΊ Π±Π°Π·Π΅, ΠΈ ΠΊΠ°ΠΊΠΎΠ΅ мСню Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. НачнСм с Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

Как Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ

МногиС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ создании мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ состоит, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· 3 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности, Π΄Π΅Π»Π°ΡŽΡ‚ 3 Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. Π’ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСдостатки:

Π£ нас Π±Ρ‹Π» Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ удивлялся высокой стоимости ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сайта, Ρ‚.ΠΊ. Ρƒ Π½Π΅Π³ΠΎ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ мСню Π±Ρ‹Π» сдСлан Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. И для Π²Π΅Π± мастСра Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ сил ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° сайтС. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½ Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСбС Π½ΠΎΠ²Ρ‹ΠΉ сайт. Π₯отя ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ сайта Π±Ρ‹Π»Π° достаточно высока, Π½ΠΎ ΠΎΠ½Π° ΠΎΠΊΡƒΠΏΠΈΠ»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя, Π·Π° счСт Π½ΠΈΠ·ΠΊΠΎΠΉ стоимости ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сайта.

Как Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ

НуТно Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ мСню Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ автоматичСски, ΠΈ Π±Ρ‹Π»ΠΎ всСго 1-ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π½Π° php

БСйчас ΠΌΡ‹ сдСлаСм Π²Ρ‹Π²ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ структуры сайта нашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (ox2.ru). ΠœΡ‹ постоим Π΄Π΅Ρ€Π΅Π²ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π° (3 уровня влоТСнности):

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Для построСния Π΄Π΅Ρ€Π΅Π²Π° Π½Π° php Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ id ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΎΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π΅ name – имя ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠ»Π΅parent_id – ΠΎΠ½ΠΎ ссылаСтся Π½Π° id ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ родитСля.

НапримСр, для Ρ€Π°Π·Π΄Π΅Π»Π° Π’Π°Ρ€ΠΈΡ„ Β«ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉΒ» parent_id = 4, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° являСтся ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ Ρ€Π°Π·Π΄Π΅Π»Π° с id Ρ€Π°Π²Π½Ρ‹ΠΌ 4-Π΅ΠΌ (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π° ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ parent_id Ρ€Π°Π²Π½Ρ‹ΠΌ 2-ΡƒΠΌ, Ρ‚.ΠΊ. являСтся 2-Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ влоТСнности Ρ€Π°Π·Π΄Π΅Π»Π° Услуги). Если parent_id = 0, Ρ‚ΠΎ это главная катСгория.

Π’ΠΎΡ‚ Π΄Π°ΠΌΠΏ нашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π½Π° PHP

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с PHP5, ΠΌΡ‹ сдСлали 2 вСрсии Π²Ρ‹Π²ΠΎΠ΄Π° мСню (Π½Π° PHP4 ΠΈ Π½Π° PHP5)

Для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° PHP5, пропуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»

Π’Ρ‹Π²ΠΎΠ΄ мСню Π½Π° PHP4

Π’Ρ‹Π²ΠΎΠ΄ мСню Π½Π° PHP5

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:
Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо!

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:
Бпасибо, ваша ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΌΠ½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ написал ΠΏΡ€Π°Π²Π΄Π° свой, Π½ΠΎ идСю с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ частично позаимствовал Ρƒ вас )

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:
Бпасибо Π·Π° ΠΎΠ±Ρ€Π°Π·Π΅Ρ†, ваш сайт ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² освоСнии ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ программирования.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Ρ‹Π²ΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ мСню с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ влоТСнности

Π”Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: 2013-03-08

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°: ΠΏΡ€ΠΈ создании сайтов практичСски всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мСню, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ Π»ΠΈΠ±ΠΎ ΠΏΠΎ страницам, Π»ΠΈΠ±ΠΎ ΠΏΠΎ катСгориям Π²Π΅Π±-прилоТСния. И ΠΎΡ‡Π΅Π½ΡŒ часто Π΄Π°Π½Π½ΠΎΠ΅ мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. И Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли прСдусматриваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности. А Ссли Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ? Или, Π²ΠΎΠΎΠ±Ρ‰Π΅, Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности? Как Π±Ρ‹Ρ‚ΡŒ Π² этом случаС? ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ с Π’Π°ΠΌΠΈ научимся Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ мСню с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ влоТСнности.

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСнюphp рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, ΠΊΠ°ΠΊ всСгда, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ со структурой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мСню, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π³Π΄Π΅ Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ data_car. ΠœΡ‹ с Π’Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ для Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ сайта, поэтому ΠΈ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… я Π²Ρ‹Π±Ρ€Π°Π» Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΊ этой Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ такая структура Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π°Π·ΠΎΠ²Π΅ΠΌ categories) Π½Π°ΠΌ понадобится для Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ мСню:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

БСсплатный курс ΠΏΠΎ PHP ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

ΠžΡΠ²ΠΎΠΉΡ‚Π΅ курс ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΉ сайт Π½Π° PHP ΠΈ MySQL с ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ нуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ модСль MVC

Π’ курсС 39 ΡƒΡ€ΠΎΠΊΠΎΠ² | 15 часов Π²ΠΈΠ΄Π΅ΠΎ | исходники для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

Π’Π΅ΠΏΠ΅Ρ€ΡŒ описаниС ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

id – ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ AUTO_INCREMENT ΠΈ PRIMARY KEY)

title – Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

parent_id – ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Ссли катСгория Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ, Π·Π½Π°Ρ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ поля 0, для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ записи. Если ΠΆΠ΅ катСгория дочСрняя, Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ родитСля (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ поля id).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ, вставим Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ нСсколько Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ…, ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ…, Π΄ΡƒΠΌΠ°ΡŽ Ρ‚Ρ€ΠΈ-Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ уровня влоТСнности, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ достаточно.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… создана, Π½Π°Ρ‡Π½Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ скрипт.

2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ настройки ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ опрСдСлимся с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структурой Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ скрипта. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ с Π’Π°ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π±Π»ΠΎΠΊ с ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ мСню, поэтому Π½Π°ΠΌ понадобится, Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ:

functions
β€” functions.php
config.php
index.php

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΠ° functions, содСрТит Π² сСбС ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» – functions.php, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ описаны всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта. Π”Π°Π»Π΅Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ config.php ΠΌΡ‹ опишСм всС основныС настройки ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ index.php – основная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°.

Π₯ΠΎΡ‡Ρƒ сразу ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊΠΈΠ΅ основныС настройки Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Π²ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° config.php:

Как Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь настройки для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π’Π°ΡˆΠ΅Π³ΠΎ Π²Π΅Π±-прилоТСния.

Π”Π°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» functions.php (сохраним Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ functions) ΠΈ создадим Π² Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…:

Как Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΡ‡Π΅Π½ΡŒ простая функция, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: адрСс сСрвСра, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π½Π°Ρ‡Π°Π»Π΅ выполняСм соСдинСниС с сСрвСром Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ mysql_connect($host,$user,$pass), Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” mysql_select_db($database,$db) ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ опрСдСляСм ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ„Π°ΠΉΠ» index.php ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ строки ΠΊΠΎΠ΄Π°:

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, отправляСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ – функция header(Β«Content-Type:text/html;charset=utf8β€³). Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΄Π²Π° Ρ€Π°Π½Π΅Π΅ созданных Ρ„Π°ΠΉΠ»Π°: Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ config.php ΠΈ Ρ„Π°ΠΉΠ» functions.php. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ db(), для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвСру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ. Если Π½Π° экранС, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²Π΅Π»ΠΎΡΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π½Π΅Ρ‚ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΡ‹ Π½Π° Π²Π΅Ρ€Π½ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ.

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

БСсплатный курс ΠΏΠΎ PHP ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

ΠžΡΠ²ΠΎΠΉΡ‚Π΅ курс ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΉ сайт Π½Π° PHP ΠΈ MySQL с ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ нуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ модСль MVC

Π’ курсС 39 ΡƒΡ€ΠΎΠΊΠΎΠ² | 15 часов Π²ΠΈΠ΄Π΅ΠΎ | исходники для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°

3. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ массива ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ мСню, Π±Π΅Π· ограничСния ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ влоТСнности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ.

РСкурсия β€” это ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ самой сСбС, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ самой сСбя.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ мСню. Данная Π·Π°Π΄Π°Ρ‡Π° (ΠΊΠ°ΠΊ ΠΈ любая Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ) ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ), которая Π² своСм ΠΊΠΎΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»Π° SQL запрос ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… мСню, ΠΏΠΎ полю parent_id. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ всС записи, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅ parent_id = 0, Π·Π°Ρ‚Π΅ΠΌ parent_id = 1, Π΄Π°Π»Π΅Π΅ parent_id = 2 ΠΈ Ρ‚.Π΄. Π”Π°Π»Π΅Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ вытягиваСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ SQL запроса ΠΈ Π² этом ΠΆΠ΅ Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (рСкурсивно саму Π½Π° сСбя) ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρƒ записи, Π²Ρ‹Ρ‚Π°Ρ‰Π΅Π½Π½ΠΎΠΉ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΡ‹ с Π’Π°ΠΌΠΈ вытаскиваСм Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ассоциативный массив, Π² этом массивС Π΅ΡΡ‚ΡŒ ячСйка с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ parent_id, Π²ΠΎΡ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, казалось Π±Ρ‹, ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Но Π΅ΡΡ‚ΡŒ сущСствСнный нСдостаток – происходит ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. А это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΌΡ‹ ΠΏΠΎΠΉΠ΄Π΅ΠΌ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈ Ρ€Π΅ΡˆΠΈΠΌ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ½Π°Ρ‡Π΅. Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ обратимся ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΠΌ всС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΉ содСрТатся. Π”Π°Π»Π΅Π΅ ΠΈΠ· этих ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ сформируСм массив, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ массив ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π° экран.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ functions.php создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get_cat():

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ index.php Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

Как Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, функция Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ массив ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ отсортирован Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ мСню.

4. Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» functions.php ΠΈ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ view_cat(), которая ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ мСню:

Π˜Ρ‚Π°ΠΊ, данная функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ – это собствСнно массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ. Π—Π°ΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ссли Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ данная функция Π±ΡƒΠ΄Π΅Ρ‚ рСкурсивно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· рСкурсии, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ с Π’Π°ΠΌΠΈ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, провСряСм, сущСствуСт Π»ΠΈ ячСйка массива с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ($arr[$parent_id]) β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ – ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

PHPDesigner

Π’Ρ‹ здСсь: Главная Β» PHP Β» ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π½Π° PHP. РСкурсия

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π½Π° PHP. РСкурсия

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

БСгодня я расскаТу, ΠΊΠ°ΠΊ Π½Π° PHP ΠΈ MySQL ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ построСнии ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ динамичСского сайта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ посту.

Π’ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ½ΠΈ строятся Π³Π΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡ‚Ρ€ΠΎΠΈΡˆΡŒ иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ структура Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…! Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ хранятся ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ сайта. Для простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 3 поля:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² SQL-запрос Π² PHPMyAdmin:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ записями. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Π° получится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ такая Ρ‚Π°Π±Π»ΠΈΡ†Π°:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

МоТно Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ запросом:

Π‘ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… всё! Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅ΠΌ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ самого Π΄Π΅Ρ€Π΅Π²Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

И сСйчас Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π”Π°Π»ΡŒΡˆΠ΅ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Π‘Π” Π² Ρ†ΠΈΠΊΠ»Π΅ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Π΅Ρ‘ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. НО! Π›Π°Π΄Π½ΠΎ, Ссли Π² Π‘Π” нСсколько ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. А Ссли сайт β€” ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ Ρƒ Π½Π΅Π³ΠΎ сотня ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ? Π’ΠΎΠ³Π΄Π° Π±Π΅Π΄Π°! НСвСдомоС количСство запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ сайта ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΊΡ€Π°Ρ…Ρƒ mysql-сСрвСра.

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ запрос ΠΊ Π‘Π” Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ ΠΈΡ…Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ запрос ΠΈ сформируСм ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ массив для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ categories ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ассоциативный массив $cats, ΠΊΠ»ΡŽΡ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ id Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

БСйчас Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ. Для построСния Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ структуру:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ build_tree(). Она Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ нашС иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ любой влоТСнности.

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ id Ρ€Π°Π·Π΄Π΅Π»Π°. Π’ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Ссли Π² Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹, Ρ‚ΠΎΠ³Π΄Π° функция запускаСтся Π΅Ρ‰Π΅ Ρ€Π°Π· с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ (Π½ΠΎΠ²Ρ‹ΠΉ массив Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ id Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ). Π’Π°ΠΊ формируСтся Π΄Π΅Ρ€Π΅Π²ΠΎ любой влоТСнности!

Для построСния Π΄Π΅Ρ€Π΅Π²Π°, Π² ΠΊΠΎΠ΄Π΅ прописываСм:

Π’Π°ΠΊ Π²ΠΎΡ‚ Π² Π΄Π²Π° шага ΠΌΡ‹ создали иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² сайта ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ сколько Ρ‚Π°ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²!

UPD Если Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС зная id ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ:

Данная функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ массив ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ id Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ, ΠΈ id ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ΄Ρ‚ΠΈ Π²Π²Π΅Ρ€Ρ….

Для построСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° запускаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ build_tree c Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РСкурсия Π½Π° PHP β€” Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

К написанию ΡΡ‚Π°Ρ‚ΡŒΠΈ сподвигли часы Ρ€Π°Π·Π΄ΡƒΠΌΠΈΠΉ ΠΈ экспСримСнтов Π² области построСния иСрархичСских списков. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±ΠΊΠ°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ Π½Π° SQL запросах, Π½ΠΎ Π² послСдствии Ρ€Π΅ΡˆΠΈΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° PHP, Π΄Π°Π±Ρ‹ ΡΠ½ΡΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π‘Π£Π‘Π”. На простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ корня ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ элСмСнта ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, информация скорСС для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

Π˜Ρ‚Π°ΠΊ, тСстовая иСрархия, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°ΠΌ прСдстоит Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

Π’ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… имССтся самая простая Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° самом простом MSSQL сСрвСрС, тонкости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ опустим, наша Ρ†Π΅Π»ΡŒ β€” Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ ΠΈ рСкурсиСй.

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ОписаниС ΠΏΠΎΠ»Π΅ΠΉ Π΅ΡΡ‚ΡŒ Π² коммСнтариях, Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠΎΠ»Π΅ access:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΌΠΎΠ΅ΠΉ систСмС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° проставляСтся inherit, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ наслСдованиС ΠΎΡ‚ родитСля. Для нашСго экспСримСнта для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… эСлСмСнтов ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹. Π’ Π³Ρ€ΡƒΠΏΠΏΠ΅ Domain Users моя учётная запись имССтся, Π° Π²ΠΎΡ‚ Π² AD Group Secret мСня Π½Π΅Ρ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ нСпосрСдствСнно ΠΊ Π΄Π΅Π»Ρƒ:

Π—Π°Π΄Π°Ρ‡Π° β„–1

НСобходимо Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ ΠΊΠ°ΠΊ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Π° Π½Π΅ списком. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ извСстСн ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ срСдство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠ°ΠΊ свСрху Π²Π½ΠΈΠ·, Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π—Π°Π΄Π°Ρ‡Π° β„–2

НСобходимо Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступами, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄., ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой NTFS, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° всю ΠΏΠ°ΠΏΠΊΡƒ, Π½ΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² этой ΠΏΠ°ΠΏΠΊΠ΅ доступ Π½Π°Ρ€Π΅Π·Π°Ρ‚ΡŒ β€” Ρ‚ΠΎΠΆΠ΅ самоС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ Ρƒ нас.

Π—Π°Π΄Π°Ρ‡Π° β„–3

НСобходимо ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ рСсурсы, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚ доступа, Π½ΠΎ самоС Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€Π°Π² хотя Π±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π³Π΄Π΅ Ρ‚ΠΎ Π² Π³Π»ΡƒΠ±ΠΈΠ½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ для Π½Π΅Π³ΠΎ Π²Π΅Ρ‚ΠΊΠΈ, Π΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ элСмСнты Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊ этому Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ (ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎ Π½Π΅Π³ΠΎ добСрётся?)

Π’ΠΎΡ‚ собствСнно базовая функция:

ОписаниС ΠΏΠΎ большСй части ΠΏΡ€ΠΈΠ²Ρ‘Π» Π² коммСнтариях, Π½ΠΎ Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ просто β€” послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» foreach ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ строку ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ(Π² нашСм случаС просто ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив, добавляя ΠΏΠΎΠ»Π΅ level ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ), ΠΎΠ½ запускаСт эту ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ uid строки, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² условии if ΠΌΡ‹ сравниваСм Π΅Π³ΠΎ с pid, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты. Π¦ΠΈΠΊΠ» foreach ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС строки Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… uid родитСля совпадаСт с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, поэтому пСрСзапуская саму сСбя, функция ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня. Для наглядности, ΠΌΡ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ level увСличивая Π΅Π³ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΈΠΌΠ΅Π΅Ρ‚.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ массив $array Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

Π£ΠΆΠ΅ Π½Π΅ ΠΏΠ»ΠΎΡ…ΠΎ, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ?

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ услоТним Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎ порядку:

1. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ path β€” для формирования ΠΏΡƒΡ‚ΠΈ, добавляСм ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ «/» ΠΈ имя строки, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π³Π΄Π΅ история повторяСтся ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ получаСтся ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ корня Π΄ΠΎ элСмСнта.

3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ индСкс $array_idx_lvl = array();. Π­Ρ‚ΠΎΡ‚ индСкс Π½Π°ΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅ потрСбуСтся ΠΏΠΎΠ·ΠΆΠ΅, смысл Ρ‚Π°ΠΊΠΎΠ² β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ складываСтся Π½Π΅ Π² ΠΎΠ΄Π½Ρƒ ΠΊΡƒΡ‡Ρƒ, Π° с Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ Π½Π° массивы индСксируСмыС ΠΏΠΎ level.

4. ПолС Access. Когда функция запускаСт саму сСбя, вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ свою настройку ΠΏΡ€Π°Π² $_row[‘access’] дочСрям, Π° Π΄Π°Π»Π΅Π΅ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° β€” Ссли выставлСно наслСдованиС (inherit), Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° родитСля, Ссли Π½Π΅Ρ‚ β€” Ρ‡Π΅Ρ€Π΅Π· in_array провСряСм, Π΅ΡΡ‚ΡŒ Π»ΠΈ указанная Π² access домСнная Π³Ρ€ΡƒΠΏΠΏΠ° срСди Π³Ρ€ΡƒΠΏΠΏ зашСдшСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если Π΅ΡΡ‚ΡŒ β€” добавляСм Π² строку allow (Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ), ΠΈΠ½Π°Ρ‡Π΅ deny (Π·Π°ΠΏΡ€Π΅Ρ‚).

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:
php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, со спуском Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠΎΠΌ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ послСднСго поля view, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ элСмСнтов. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» для Ρ‡Π΅Π³ΠΎ это Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΠ½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Допустим Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ список ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ мСню сайта, сдСланному Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка с ΠΊΡƒΡ‡Π΅ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², ΠΈ Π²Ρ‹ просто Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ доступ всСго лишь ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ Π²ΠΎΡ€ΠΎΡ‡Π°Π» вСсь этот массив ΠΈ Π² ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΠΎΠΌ мСню искал свой ΠΏΡƒΠ½ΠΊΡ‚, вСдь ΠΏΠΎ сути Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всСго лишь ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ Π²Π΅Π΄ΡƒΡ‰ΡƒΡŽ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ здСсь Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону? ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°ΠΊΡ€Ρ‹Ρ‚ доступ для всСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, самого дальнСго(Π½Π° послСднСм ΡƒΡ€ΠΎΠ²Π½Π΅) Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ссли ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π±Ρ€Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚ доступного, ΠΈ вСсти Π΅Π³ΠΎ ΠΊ ΠΊΠΎΡ€Π½ΡŽ Π΄Π΅Ρ€Π΅Π²Π°, показывая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ эта функция β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° uid строки, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, обращаСтся ΠΊ этой строкС ΠΈ провСряСт Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. Если Π² ΠΏΠΎΠ»Π΅ view Π½Π΅ show(Ρ‚.Π΅. ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ), Π° Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, провСряСт Ρ‡Ρ‚ΠΎ находится Π² бСзопасности, ΠΈ Ссли Ρ‚Π°ΠΌ стоит allow(доступ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚), Π΄Π΅Π»Π°Π΅Ρ‚ элСмСнт Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС скрытым(hide), Π·Π°Ρ‚Π΅ΠΌ запускаСт сСбя ΠΆΠ΅, пСрСдавая свой pid ΠΈ настройку видимости, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $ident ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π½Π° 1, Ρ‚Π΅ΠΌ самым блокируя ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ самозапуски. ΠŸΡ€ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅, ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌΡƒ pid находится Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт, выполняСтся Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Ссли ΠΎΡ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $view ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ‘show‘, Ρ‚ΠΎ Π½Π΅ смотря Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ, Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ элСмСнту Ρ‚Π°ΠΊ ΠΆΠ΅ присвоится show, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ.

На ΠΌΠΎΠΉ взгляд, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ β€” самый ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½Π° 10 ΡƒΡ€ΠΎΠ²Π½Π΅ Ρƒ нас 100 Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π° всСго Π΄Π΅Ρ€Π΅Π²Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС, Ρ‚.ΠΊ. Ссли Π½Π° послСднСм ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΡ‹ запустим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ 100 Ρ€Π°Π·, Ρ‚ΠΎ выполняя самозапуски, ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ 100 Ρ€Π°Π· Π΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π΄ΠΎ корня. Если ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° 10 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ β€” ΡƒΠΆΠ΅ получится 1000 Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ Π½Π΅ Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, поэтому ΠΏΠΎΠ΄ΡŠΡ‘ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ.

ЗапускаСт эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ потрСбовался индСкс ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ двиТСмся ΠΎΡ‚ самого дальнСго уровня, заходя Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, обрабатывая Π² Π½Ρ‘ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт.

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠŸΠ΅Ρ€Π΅Π΄ запуском, я Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ прописал Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ для ΠΏΡƒΠ½ΠΊΡ‚Π° Β«ΠžΡ‚Ρ‡Π΅Ρ‚ для Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ наглядно ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ доступ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ «БухгалтСрская ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒΒ» Π·Π°ΠΊΡ€Ρ‹Ρ‚, ΠΎΠ½ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ.

Π’ΠΎΡ‚ ΠΈ собствСнно всё, Π΄ΡƒΠΌΠ°ΡŽ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΌΡ‹ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ, основа ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ простых Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² PHP: рСкурсивный ΠΌΠ΅Ρ‚ΠΎΠ΄

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ развития соврСмСнных web-программистов. ΠœΡ‹ смСло ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°Π±Ρ€ΠΈΠΊΠ°ΠΌΠΈ, синглтонами ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π½ΠΎ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ части программирования, ΠΊΠ°ΠΊ классичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π’Π΅Π΄ΡŒ Ссли ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ ΠΊ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ это Ρ‚ΠΎΠΆΠ΅ своСго Ρ€ΠΎΠ΄Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹. Π‘ институтской скамьи ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, nested sets, b-tree, сортировку Β«ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌΒ». РСализация ΠΌΠ½ΠΎΠ³ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π΄Π°Π²Π½ΠΎ ΡƒΡΡ‚ΠΎΡΠ»Π°ΡΡŒ. А ΠΏΠΎΡ‚ΠΎΠΌΡƒ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΡΠ²ΡΡ‚ΠΈΡ‚ΡŒ свою ΡΡ‚Π°Ρ‚ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² PHP.

Начну я с самого простого β€” построСния Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

Казалось Π±Ρ‹, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ слоТного? Π’ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню. Π€ΠΎΡ‚ΠΎ php рСкурсивная функция ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ мСню

НСобходимо ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот массив Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ³ΠΎ мСню. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ способами ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ. ЕдинствСнно Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” рСкурсивный ΠΌΠ΅Ρ‚ΠΎΠ΄.

Алгоритм (ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, Ссли Ρ‚Π°ΠΊ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ: 0. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π° ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ всС элСмСнты Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. 1. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ построСния. Он ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ сборку массива Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. ИмСнно этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ являСтся Π½ΠΎΡƒ-Ρ…Π°Ρƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Он позволяСт Π½Π°ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΡΡ‰Π½ΡƒΡŽ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. 2. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ массив, начиная с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ элСмСнта. Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ элСмСнтС. 3. Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ погруТСния. РСкурсивно Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта. Если ΠΎΠ½ Π΅ΡΡ‚ΡŒ Π² массивС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ ΠΈΠ΄Π΅ΠΌ ΠΊ ΡˆΠ°Π³Ρƒ 2, ΠΈΠ½Π°Ρ‡Π΅ β€” Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ Π² шаг-ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€. 4. УмСньшаСм ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ погруТСния. Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΌΠ΅Ρ‚ΠΎΠ΄ сборки массива ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π”Π°Π»Π΅Π΅ напишСм наш рСкурсивный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² соотвСтствии с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ построСниС Π΄Π΅Ρ€Π΅Π²Π°, начиная с 0 элСмСнта ΠΈ 0 уровня. Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ построСниС с любой Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½ΠΎΠ΄Ρ‹ ΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΏΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π΅.

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ нашС Π΄Π΅Ρ€Π΅Π²ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅:

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΈ построСнии мСню Π½Π° сайтС, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚. ΠΏ. Π£ Π½Π΅Π³ΠΎ, разумССтся, Π΅ΡΡ‚ΡŒ нСдостатки. ΠŸΡ€ΠΈ построСнии достаточно большого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ довольно Π΄ΠΎΠ»Π³ΠΎ. Но Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Ρ‚ΡƒΡ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ погруТСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ постСпСнно ΠΏΡ€ΠΈ запросС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π― Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ здСсь ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ хранСния Ρ‚Π°ΠΊΠΎΠΉ структуры, Ρ‚. ΠΊ. нас сСйчас интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ массива.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *