TGViewer
Channel Public Channel
PHP | Вопросы собесов

PHP | Вопросы собесов

@easy_php_ru

Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy

Контакт для рекламы: @sendme_ads
Subscribers
2.3K
Photos
34
Videos
0
Links
1.6K

Showing posts older than #1834 · Back to latest

Older Posts 20 shown
Post #1833 469
🤔 Чем отличается BacktimeTable от Backtime?

1. BacktimeTable может быть структурой данных или таблицей, используемой для хранения промежуточных результатов в задаче обратного отсчёта или обработки данных.
2. Backtime часто означает сам процесс обратного отсчёта или времени ожидания.
3. Различие зависит от контекста: таблица — для хранения, backtime — для логики.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1831 511
🤔 Что такое декремент?

декремент — это операция, используемые для увеличения или уменьшения значения переменной на единицу соответственно.

🚩Декремент

Оператор уменьшает значение переменной на единицу. Он представлен двумя минусами (--). Так же, как и инкремент, декремент бывает двух видов:

🟠Префиксный декремент (`--x`)
Сначала уменьшает значение переменной на единицу, затем возвращает новое значение.
🟠Постфиксный декремент (`x--`)
Возвращает текущее значение переменной, а затем уменьшает его на единицу.

<?php
$x = 10;
$y = 10;

// Пример префиксного инкремента
echo ++$x; // Выводит 11, x теперь равен 11

// Пример постфиксного инкремента
echo $y++; // Выводит 10, y теперь равен 11
echo $y; // Выводит 11

// Пример префиксного декремента
echo --$x; // Выводит 10, x теперь равен 10

// Пример постфиксного декремента
echo $y--; // Выводит 11, y теперь равен 10
echo $y; // Выводит 10
?>


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
Post #1830 495
🤔 Что такое ACID?

ACID — это акроним, обозначающий четыре ключевых свойства транзакций в базах данных: Atomicity (атомарность), Consistency (согласованность), Isolation (изоляция), Durability (устойчивость). Эти свойства гарантируют надежное выполнение транзакций.?

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
  • 👍 2
Post #1828 551
🤔 Что такое автоматическая загрузка классов?

Автоматическая загрузка классов (Autoloading) — это механизм, который позволяет не подключать вручную файлы с классами с помощью require или include. Вместо этого PHP автоматически загружает нужный класс при его первом использовании.

🚩Как работает автозагрузка?

Без автозагрузки (ручное подключение)
require_once "Car.php";
require_once "Bike.php";

$car = new Car();
$bike = new Bike();


С автозагрузкой (PHP сам загружает классы)
spl_autoload_register(function ($class) {
require_once $class . ".php";
});

$car = new Car(); // PHP сам загрузит "Car.php"
$bike = new Bike(); // PHP сам загрузит "Bike.php"


🚩Современный способ – автозагрузка через Composer

Если проект использует Composer, можно настроить автозагрузку по стандарту PSR-4.

1⃣В composer.json добавляем:
"autoload": {
"psr-4": {
"App\\": "src/"
}
}


2⃣В папке src/ создаём классы, например
- src/Car.php
- src/Bike.php

3⃣Запускаем команду
composer dump-autoload


4⃣Теперь можно использовать классы без require:
require 'vendor/autoload.php';

use App\Car;
use App\Bike;

$car = new Car();
$bike = new Bike();


Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 3
Post #1826 476
🤔 Расскажи про полиморфизм

Полиморфизм — это концепция ООП, которая позволяет объектам разных классов обрабатывать одинаковые сообщения или методы по-разному. Полиморфизм позволяет использовать общий интерфейс для взаимодействия с объектами разных типов, не зная их конкретный класс. Он облегчает расширение и поддержку кода, делая его более гибким и удобным для добавления новых классов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1825 515
🤔 Какие уровни ошибок есть в PHP?

В PHP существуют различные уровни ошибок, которые помогают разработчикам выявлять и исправлять проблемы в коде. Эти уровни ошибок задаются с помощью констант и управляются функцией error_reporting(). Рассмотрим основные уровни ошибок:

🚩Основные уровни ошибок в PHP

🟠E_ERROR (фатальная ошибка, код: 1)
Критическая ошибка, которая приводит к завершению работы скрипта.
Например, вызов несуществующей функции
someUndefinedFunction(); // Вызовет E_ERROR


🟠E_WARNING (предупреждение, код: 2)
Не фатальная ошибка, скрипт продолжит выполнение.
Например, деление на ноль или использование include() для несуществующего файла:
echo 10 / 0; // Вызовет E_WARNING


🟠E_PARSE (ошибка парсинга, код: 4)
Ошибка синтаксиса в коде, обнаруживаемая на этапе компиляции.
Например, забытая точка с запятой:
echo "Hello" // Отсутствует ;


🟠E_NOTICE (замечание, код: 8)
Сообщает о некритичных ошибках, например, об использовании неинициализированной переменной:
echo $undefinedVariable; // Вызовет E_NOTICE


🟠E_CORE_ERROR (фатальная ошибка ядра, код: 16)
Аналогична E_ERROR, но возникает на этапе загрузки PHP.

🟠E_CORE_WARNING (предупреждение ядра, код: 32)
Аналогична E_WARNING, но на этапе загрузки PHP.

🟠E_COMPILE_ERROR (ошибка компиляции, код: 64)
Ошибки, связанные с компиляцией скрипта, например, при ошибке в require.

🟠E_COMPILE_WARNING (предупреждение компиляции, код: 128)
Предупреждения компилятора.

🟠E_USER_ERROR (пользовательская фатальная ошибка, код: 256)
Вызывается вручную с помощью trigger_error():
trigger_error("Критическая ошибка!", E_USER_ERROR);


🟠E_USER_WARNING (пользовательское предупреждение, код: 512)
Аналогично E_WARNING, но создаётся пользователем.

🟠E_USER_NOTICE (пользовательское замечание, код: 1024)
Аналогично E_NOTICE, но вызывается вручную.

🟠E_STRICT (строгие предупреждения, код: 2048)
Сообщает о потенциальных проблемах совместимости.

🟠E_RECOVERABLE_ERROR (обрабатываемая фатальная ошибка, код: 4096)
Фатальная ошибка, которую можно обработать через set_error_handler().

🟠E_DEPRECATED (предупреждение об устаревших функциях, код: 8192)
Указывает, что используется устаревшая функция.

🟠E_USER_DEPRECATED (пользовательское предупреждение об устаревании, код: 16384)
Вызывается пользователем через trigger_error().

🚩Как управлять уровнями ошибок?

PHP позволяет включать или выключать определённые ошибки с помощью error_reporting()
error_reporting(E_ALL); // Включить все ошибки
error_reporting(0); // Отключить вывод ошибок
error_reporting(E_ERROR | E_WARNING); // Только критические ошибки и предупреждения


Также можно использовать display_errors для отображения ошибок в браузере
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


Ставь 👍 и забирай 📚 Базу знаний
Post #1824 476
🤔 Что такое рекурсия?

Рекурсия — это метод в программировании, при котором функция вызывает сама себя. Рекурсия используется для решения задач, которые можно разбить на более мелкие, однотипные задачи.?

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1823 538
🤔 Что такое CQRS?

CQRS (Command Query Responsibility Segregation) – это архитектурный паттерн, который разделяет операции чтения (Query) и записи (Command) в приложении. Вместо одной модели данных используется две:
Модель для чтения – оптимизирована для запросов.
Модель для записи – отвечает за изменение данных.

🚩Зачем нужен CQRS?

🟠Производительность
запросы можно кэшировать, а запись может происходить в другой базе.
🟠Гибкость
можно использовать разные структуры данных для чтения и записи.
🟠Масштабируемость
можно масштабировать чтение и запись отдельно.
🟠Безопасность
можно ограничить доступ к записи.

🚩Как это работает?

В классическом приложении чтение и запись используют одну модель данных
class User {
public $id;
public $name;
public $email;

public function updateEmail($newEmail) {
$this->email = $newEmail;
}
}


Команда (Command) – запись
class UpdateUserEmailCommand {
public int $userId;
public string $newEmail;

public function __construct($userId, $newEmail) {
$this->userId = $userId;
$this->newEmail = $newEmail;
}
}

class UserCommandHandler {
public function handle(UpdateUserEmailCommand $command) {
// Логика обновления в БД
$db = new PDO("mysql:host=localhost;dbname=test", "root", "password");
$stmt = $db->prepare("UPDATE users SET email = :email WHERE id = :id");
$stmt->execute([
':email' => $command->newEmail,
':id' => $command->userId
]);
}
}


Запрос (Query) – чтение
class UserQueryHandler {
public function getUserById($userId) {
$db = new PDO("mysql:host=localhost;dbname=test", "root", "password");
$stmt = $db->prepare("SELECT id, name, email FROM users WHERE id = :id");
$stmt->execute([':id' => $userId]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}
}


🚩CQRS + Event Sourcing

Часто CQRS используется вместе с Event Sourcing – вместо изменения данных мы создаем события.
class UserEmailUpdatedEvent {
public int $userId;
public string $newEmail;

public function __construct($userId, $newEmail) {
$this->userId = $userId;
$this->newEmail = $newEmail;
}
}


Ставь 👍 и забирай 📚 Базу знаний
Post #1822 516
🤔 Что такое Rest

REST (Representational State Transfer) — это архитектурный стиль для разработки веб-сервисов. Он основывается на стандартах HTTP и включает использование простых методов (GET, POST, PUT, DELETE) для взаимодействия с ресурсами, представленных в виде URL. RESTful API являются безсессионными, и каждый запрос от клиента к серверу должен содержать всю необходимую информацию для выполнения операции.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
  • 🔥 1
Post #1821 558
🤔 В чем разница между вертикальным и горизонтальным масштабированием?

Масштабирование (scaling) — это процесс увеличения мощности системы, чтобы она справлялась с увеличенной нагрузкой. В программировании и серверной архитектуре есть два типа масштабирования:
Вертикальное масштабирование (Vertical Scaling, Scale-Up)
Горизонтальное масштабирование (Horizontal Scaling, Scale-Out)

🚩Вертикальное масштабирование (Vertical Scaling)

- Улучшение одного сервера: больше оперативной памяти (RAM), мощнее процессор (CPU), быстрее диск (SSD/NVMe).
- Приложение остаётся на одном сервере, просто он становится мощнее.

🚩Горизонтальное масштабирование (Horizontal Scaling)

- Добавляются новые серверы, работающие параллельно.
- Нагрузка распределяется между несколькими машинами.
- Используются балансировщики нагрузки (Nginx, HAProxy, AWS ELB).

Ставь 👍 и забирай 📚 Базу знаний
Post #1820 499
🤔 Какими способами организовать порции?

Разделение данных на порции (batch processing) может быть организовано разными методами:
1. LIMIT и OFFSET – классический способ для пагинации в SQL.
2. Cursor-based pagination – используется в API, позволяет получать новые данные без смещения.
3. Частичная загрузка данных – загружать данные по мере необходимости (lazy loading).
4. Очереди (Message Queues) – например, RabbitMQ или Kafka для обработки данных в потоках.
5. Шардирование данных – разделение больших таблиц на более мелкие логические части.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1819 470
🤔 Какие модификаторы видимости есть в РНР?

В PHP есть три основных модификатора видимости для свойств и методов классов: public, protected и private. Они определяют, какой код имеет доступ к этим свойствам и методам.

🟠`public` (публичный)
Свойства и методы, объявленные как public, доступны отовсюду - как изнутри класса, так и извне, а также из наследуемых классов.
class MyClass {
public $publicProperty = 'Public';

public function publicMethod() {
echo 'This is a public method';
}
}

$obj = new MyClass();
echo $obj->publicProperty; // Выведет: Public
$obj->publicMethod(); // Выведет: This is a public method


🟠`protected` (защищённый)
Свойства и методы, объявленные как protected, доступны только внутри класса и в классах-наследниках. Они недоступны для внешнего кода.
class MyClass {
protected $protectedProperty = 'Protected';

protected function protectedMethod() {
echo 'This is a protected method';
}
}

class ChildClass extends MyClass {
public function accessProtected() {
echo $this->protectedProperty; // Выведет: Protected
$this->protectedMethod(); // Выведет: This is a protected method
}
}

$obj = new ChildClass();
$obj->accessProtected();


🟠`private` (приватный)
Свойства и методы, объявленные как private, доступны только внутри самого класса. Они недоступны ни для внешнего кода, ни для классов-наследников.
class MyClass {
private $privateProperty = 'Private';

private function privateMethod() {
echo 'This is a private method';
}

public function accessPrivate() {
echo $this->privateProperty; // Выведет: Private
$this->privateMethod(); // Выведет: This is a private method
}
}

$obj = new MyClass();
$obj->accessPrivate();


🚩Зачем нужны модификаторы видимости

🟠Инкапсуляция
Модификаторы видимости помогают скрывать внутреннее состояние и детали реализации объекта, предоставляя только необходимые интерфейсы для взаимодействия.
🟠Безопасность
Они защищают данные от неконтролируемого доступа и изменения, что повышает надежность и безопасность кода.
🟠Поддержка и развитие кода
Позволяют контролировать доступ к методам и свойствам, что упрощает изменение и расширение кода без риска нарушить существующую функциональность.

Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
Post #1818 470
🤔 Что такое миграции?

Это механизм управления изменениями в структуре базы данных.
1. Позволяют добавлять, изменять или удалять таблицы, столбцы и индексы в контролируемой форме.
2. Помогают синхронизировать структуру базы данных между разработчиками и окружениями.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1817 537
🤔 Как работает бинарное дерево?

Бинарное дерево – это структура данных, где каждый узел имеет максимум 2 потомка:
Левый потомок содержит меньшие значения.
Правый потомок содержит большие значения.

🚩Как устроено бинарное дерево?

Каждый узел состоит из:
Значения (value) – данные в узле.
Ссылки на левый (left) и правый (right) потомки (или null, если потомка нет).

       8
/ \
3 10
/ \ \
1 6 14
/ \ /
4 7 13



🚩Основные операции с бинарным деревом

🟠Вставка нового элемента
Если дерево пустое → создаём корневой узел.
Сравниваем значение с корнем:
- Если меньше → идём налево.
- Если больше → идём направо.
Повторяем, пока не найдём свободное место.
       8
/ \
3 10
/ \
1 6
/ \
4 7
/
5 <-- новый элемент добавляется слева от 6


Код вставки в PHP
class Node {
public int $value;
public ?Node $left = null;
public ?Node $right = null;

public function __construct(int $value) {
$this->value = $value;
}
}

class BinaryTree {
public ?Node $root = null;

public function insert(int $value) {
$this->root = $this->insertRec($this->root, $value);
}

private function insertRec(?Node $node, int $value): Node {
if ($node === null) return new Node($value);
if ($value < $node->value) $node->left = $this->insertRec($node->left, $value);
else $node->right = $this->insertRec($node->right, $value);
return $node;
}
}

$tree = new BinaryTree();
$tree->insert(8);
$tree->insert(3);
$tree->insert(10);
$tree->insert(6);
$tree->insert(14);


🟠Поиск элемента в дереве
Алгоритм:
Начинаем с корня.
Если value == корень → найдено.
Если value < корень → ищем влево.
Если value > корень → ищем вправо.

1. 6 < 8 → идём влево к 3.
2. 6 > 3 → идём вправо к 6.
3. Нашли!

public function search(?Node $node, int $value): ?Node {
if ($node === null || $node->value === $value) return $node;
return ($value < $node->value)
? $this->search($node->left, $value)
: $this->search($node->right, $value);
}

$foundNode = $tree->search($tree->root, 6);
echo $foundNode ? "Найдено: " . $foundNode->value : "Не найдено";


🟠Удаление элемента из дерева
Сложность:
1. Если узел – лист → просто удаляем.
2. Если у узла один потомок → заменяем его потомком.
3. Если два потомка → находим минимальный элемент в правом поддереве и заменяем им удаляемый узел.

Пример удаления 3 (у него есть два потомка 1 и 6):
1. Находим минимальный узел в правом поддереве → 4.
2. Заменяем 3 на 4.
       8
/ \
3 10
/ \
1 6
/ \
4 7


После удаления 3
       8
/ \
4 10
/ \
1 6
/ \
5 7


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 1
  • 💊 1
Post #1816 495
🤔 Что запрещает final?

Модификатор final запрещает наследование класса, если он указан перед его объявлением.
Если final используется для метода, он запрещает переопределение этого метода в дочерних классах.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1815 563
🤔 Как сделать так, чтобы сессии не хранились в файле?

Для хранения сессий не в файлах в PHP, можно использовать другие механизмы хранения, такие как базы данных, кэш-сервисы (например, Redis или Memcached) или специализированные хранилища.

🚩Хранение сессий в базе данных

1⃣Создайте таблицу для хранения сессий:
CREATE TABLE sessions (
id VARCHAR(255) PRIMARY KEY,
data TEXT,
last_access TIMESTAMP
);


2⃣Создайте обработчики сессий:
Создайте класс для обработки сессий, реализующий интерфейс SessionHandlerInterface.
class DBSessionHandler implements SessionHandlerInterface {
private $pdo;

public function __construct(PDO $pdo) {
$this->pdo = $pdo;
}

public function open($savePath, $sessionName) {
return true;
}

public function close() {
return true;
}

public function read($id) {
$stmt = $this->pdo->prepare("SELECT data FROM sessions WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$session = $stmt->fetch(PDO::FETCH_ASSOC);
return $session ? $session['data'] : '';
}

public function write($id, $data) {
$stmt = $this->pdo->prepare("REPLACE INTO sessions (id, data, last_access) VALUES (:id, :data, NOW())");
$stmt->bindParam(':id', $id);
$stmt->bindParam(':data', $data);
return $stmt->execute();
}

public function destroy($id) {
$stmt = $this->pdo->prepare("DELETE FROM sessions WHERE id = :id");
$stmt->bindParam(':id', $id);
return $stmt->execute();
}

public function gc($maxlifetime) {
$stmt = $this->pdo->prepare("DELETE FROM sessions WHERE last_access < NOW() - INTERVAL :maxlifetime SECOND");
$stmt->bindParam(':maxlifetime', $maxlifetime, PDO::PARAM_INT);
return $stmt->execute();
}
}


3⃣Инициализация сессий:
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
$handler = new DBSessionHandler($pdo);
session_set_save_handler($handler, true);
session_start();


🚩Хранение сессий в Redis

1⃣Установите расширение `phpredis`Для Ubuntu:
sudo apt-get install php-redis


2⃣Используйте Redis для хранения сессий:
Настройте PHP для использования Redis в качестве хранилища сессий, добавив настройки в файл php.ini или в коде.
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"


Ставь 👍 и забирай 📚 Базу знаний
Post #1814 472
🤔 Что такое инкремент и декремент?

Инкремент (`++`) и декремент (`--`) — это операции в PHP и других языках программирования, которые увеличивают или уменьшают значение переменной на единицу соответственно.?

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
  • 👍 1
Post #1813 539
🤔 Для чего нужна рефлексия?

Рефлексия (Reflection) – это механизм анализа классов, методов, свойств и других структур во время выполнения. Она позволяет получать информацию о коде и даже изменять его динамически.

🚩Когда полезна рефлексия?

🟠Фреймворки и DI-контейнеры
- Используется для автоматического внедрения зависимостей (Dependency Injection, DI).
- Например, Laravel использует рефлексию в Container для автоматического создания объектов.
class Database {
public function connect() {
return "Подключение к базе данных";
}
}

class UserService {
private $db;

public function __construct(Database $db) {
$this->db = $db;
}

public function getUser() {
return "Пользователь найден";
}
}

function resolve($class) {
$reflector = new ReflectionClass($class);
$constructor = $reflector->getConstructor();

if (!$constructor) {
return new $class;
}

$params = $constructor->getParameters();
$dependencies = [];

foreach ($params as $param) {
$type = $param->getType();
if ($type) {
$dependencies[] = resolve($type->getName());
}
}

return $reflector->newInstanceArgs($dependencies);
}

$service = resolve(UserService::class);
echo $service->getUser(); // "Пользователь найден"


🟠Декораторы, аннотации и атрибуты
- В PHP 8 появились атрибуты (аннотации), и рефлексия помогает их читать.
- Используется в Symfony, Doctrine для работы с ORM.
#[Attribute]
class Route {
public function __construct(public string $path) {}
}

class Controller {
#[Route('/home')]
public function home() {
return "Домашняя страница";
}
}

$reflection = new ReflectionMethod(Controller::class, 'home');
$attributes = $reflection->getAttributes(Route::class);
$route = $attributes[0]->newInstance();

echo $route->path; // "/home"


🟠Автоматическая генерация документации
- Реально использовать для автоматического создания Swagger/OpenAPI.
- Можно извлекать PHPDoc-комментарии и на их основе генерировать документацию.
class Example {
/**
* Возвращает приветствие
* @return string
*/
public function sayHello() {
return "Привет!";
}
}

$reflection = new ReflectionMethod(Example::class, 'sayHello');
echo $reflection->getDocComment();


Ставь 👍 и забирай 📚 Базу знаний
Post #1812 464
🤔 Что такое логирование?

Это запись событий, ошибок и действий приложения в журнал для диагностики и анализа.
1. Логи помогают отслеживать выполнение кода, анализировать сбои и выявлять узкие места.
2. Используются различные уровни логов: INFO, DEBUG, ERROR.
3. Это важный инструмент для отладки, мониторинга и аудита системы.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Post #1811 512
🤔 Какой синтаксис у заголовков?

Заголовки в языках и разметки часто используются для указания ключевой информации, на которую стоит обратить внимание, и они различаются в зависимости от конкретного контекста и языка. Ниже приведены примеры синтаксиса заголовков в различных контекстах:

🚩Заголовки в HTML

Поддерживает шесть уровней заголовков, от <h1> до <h6>, где <h1> представляет самый важный заголовок, а <h6> — наименее важный.
<h1>Заголовок уровня 1</h1>
<h2>Заголовок уровня 2</h2>
<h3>Заголовок уровня 3</h3>
<h4>Заголовок уровня 4</h4>
<h5>Заголовок уровня 5</h5>
<h6>Заголовок уровня 6</h6>


🚩Заголовки в Markdown

Это язык разметки, который упрощает форматирование текста, особенно для написания документации. Заголовки создаются с помощью символа # перед текстом заголовка. Количество символов # определяет уровень заголовка.
# Заголовок уровня 1
## Заголовок уровня 2
### Заголовок уровня 3
#### Заголовок уровня 4
##### Заголовок уровня 5
###### Заголовок уровня 6


🚩Заголовки в LaTeX

Это система подготовки документов, широко используемая для научных и технических документов. В LaTeX заголовки создаются с помощью команд \section, \subsection, \subsubsection и так далее.
\section{Заголовок уровня 1}
\subsection{Заголовок уровня 2}
\subsubsection{Заголовок уровня 3}
\paragraph{Заголовок уровня 4}
\subparagraph{Заголовок уровня 5}


🚩Заголовки в Языке разметки Wiki

Многие вики-движки (например, MediaWiki) используют свои синтаксисы для создания заголовков. В MediaWiki заголовки создаются с помощью равно (=) вокруг текста заголовка.
= Заголовок уровня 1 =
== Заголовок уровня 2 ==
=== Заголовок уровня 3 ===
==== Заголовок уровня 4 ====
===== Заголовок уровня 5 =====
====== Заголовок уровня 6 ======


🚩Заголовки в языках

Часто не используются так же, как в разметке, но комментарии могут выполнять схожую роль для организации и документирования кода. Примеры синтаксиса для комментариев-заголовков:

Python
# Заголовок уровня 1
## Заголовок уровня 2
### Заголовок уровня 3


JavaScript
// Заголовок уровня 1
// =================
// Заголовок уровня 2
// -----------------
// Заголовок уровня 3
// ~~~~~~~~~~~~~~~~~


Ставь 👍 и забирай 📚 Базу знаний
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →