В данной статье рассмотрена программа VivaVisualCode, демонстрирующая использование библиотеки VivaCore. Программа VivaVisualCode графически отображает дерево разбора для вводимого исходного кода на языке Си++.
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
Занятие №3 в рамках Курсов программирования Ruby on Rails.
Группа курсов «ВКонтакте»: http://vk.com/ruby_school
Организатор — Агентство интернет-маркетинга Мэйк makeagency.ru. Курсы проводятся на базе Кузбасского государственного технического университета, кафедры «Информационные и автоматизированные производственные системы».
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...Tatyanazaxarova
Данная статья представляет интерес для разработчиков, использующих или планирующих использовать библиотеку OpenC++ (OpenCxx). Автор рассказывает о своем опыте улучшения библиотеки OpenC++ и модификации библиотеки для решения специализированных задач.
В презентации рассказывается о структурах памяти в JVM: Heap, Non-Heap, Stack, об атомарности операций и о garbage collector. Рассмотрен пример, как работает стек. Также, приведены примеры, как использовать jVisualVM и что она может показать.
1. Тема: массивы в PHP
Изучить возможности языка
PHP при решении задач,
требующих использования
массивов. Рассмотреть
примеры использования
массивов при создании web -
страниц.
Цель:
2. Сегодня на уроке: мин:
1. Понятие массива;
2. Понятие ассоциативного
массива;
3. Понятие многомерного массива;
4. Примеры использования
массива при работе с web -
страницами.
5. Практическая работа.
15
25
25
15
10
3. 1. массив
Представляет собой упорядоченную
структуру однотипных данных, которые
называются элементами массива.
Доступ к каждому элементу массива осуществляется
с помощью индекса – в общем случае порядкового
номера элемента в массиве.
Массивы бывают одномерными и многомерными:
A (i) A (i, j) A( I, ,j , k)
4. Самый элементарный способ
создания массива в PHP программе.
Вывод 4-го элемента в окно броузера.
Еще один способ задания массива,
индекс по умолчанию начинается с 0!
5. Вывод элементов массива с помощью
цикла с параметром. Каждый элемент
массива выводится с новой строки.
6. 2. Ассоциативный массив
Задается аналогично
предыдущему примеру,
но вместо числовых
индексов –
ассоциативный индекс
7. При создании массивов используются
три стандартные языковые конструкции:
Хотя все три случая приводят
к одному результату —
созданию массива, в
некоторых случаях одна
конструкция может оказаться
предпочтительнее других.
• аrrау( );
• list( );
• range( ).
Array ( ) Функция array ( ) получает ноль или более
элементов и возвращает массив,
состоящий из указанных элементов.
Формат записи: array ([элемент1, элемент2...]);
8. Пример
использования
конструкции array
для задания
массива
Найдите ошибку в коде
Ответ: в параметрах цикла переменная цикла
изменяется от 0 до 3, но массив определен от
0 до 2, т.е. при выводе 3-го элемента в окне
броузера будет выдано сообщение об ошибке!
9. list( ) похожа на array( ), однако ее главная задача
— одновременное присваивание значений,
извлеченных из массива, сразу нескольким
переменным.
Формат записи:
list (переменная1 [. переменная2 , ...] );
Допустим, вы хотите отформатировать и вывести
данные, прочитанные из текстового файла.
Каждая строка файла содержит сведения о
пользователе (имя, профессия и любимый цвет);
компоненты записи разделяются вертикальной
чертой (|). Типичная строка выглядит так:
Пугачева | певица | красный
10. Исходный файл
fio.dat
Результат вывода
в окне броузера
Использование внешнего файла fio.dat
для вывода информации в окно броузера.!!!
11. Каждая строка файла
fio.dat разбивается на
подстроки отделенные
друг от друга пробелами
возвращает строку, прочитанную от текущей
позиции указателя в файле, определяемом
файловым манипулятором. Файловый указатель
должен ссылаться на открытый файл, доступный
для чтения
разбивает строку на
элементы, границы
которых определяются
по заданному шаблону
Результат вывода
в окне броузера
12. Конструкция list() особенно
удобна при чтении информации
из базы данных или файла
range ( )
позволяет легко и быстро создать массив целых чисел из
интервала, определяемого верхней и нижней границами.
Range( ) возвращает массив, состоящий из всех целых чисел
указанного интервала
Формат записи:
range (нижняя_граница,верхняя граница)
Что выполняется в
данном фрагменте
кода?
Результат вывода
в окне броузера
13. Чем отличается данная конструкция
вывода в окно броузера значений
элементов массивов?
Объясните, назначение данного PHP - кода?
14. 3. Многомерный массив
Многомерный массив – это массив в массиве!
Что будет отображаться в окне броузера?
Результат вывода в окне броузера
15. 4. Примеры использования массива
В качестве примера
рассмотрим массив,
в котором хранится
информация
о DVD дисках и
фильмах которые
на них записаны.
1 Элемент массива – является массивом
Элемент массива – является
массивом
Элемент массива – строка
111
2
n r g
1
n r g
16. Каждый массив Dvd_disk будет
состоять из 2-х элементов,
каждый из которых является
массивом: Film1 и Film2
Каждый массив Film будет
состоять из 3-х элементов,
каждый из которых является
текстовой строкой
Основной массив будет состоять из 4-х элементов каждый
из которых является массивами: Dvd_disk1, Dvd_disk2,
Dvd_disk3, Dvd_disk4
17. Домашнее задание:
Попробуйте переписать PHP – код для данного примера
таким образом, чтобы информация о дисках выводилась из
внешнего файла film.dat
18. 5. Функции
Функцией называется фрагмент программного
кода, обладающий уникальным именем и
предназначенный для решения конкретной
задачи.
Определение функции обычно состоит из трех частей:
• имени функции;
• круглых скобок, в которых перечисляются
необязательные входные параметры,
разделенные запятыми;
• тела функции, заключенного в фигурные скобки.
Функция вызывается по имени в разных точках
программы, что позволяет многократно выполнять
фрагмент с указанным именем.
19. Преимущество такого решения заключается в том,
что блок кода пишется всего один раз, а затем легко
модифицируется по мере необходимости
Функции могут создаваться в любой точке программ РНР,
однако по соображениям структурной организации кода
удобнее разместить все функции, используемые сценарием, в
самом начале сценарного
файла.
Замечание: существует и другой способ, заметно
повышающий эффективность программирования и
способствующий многократному использованию
кода, — выделение функций в отдельный файл
(называемый библиотекой). Библиотеки удобны
тем, что их функции можно использовать в разных
приложениях, не создавая лишних копий и не
рискуя допустить ошибки в процессе копирования.
!!!
21. В качестве примера
рассмотрим как
создать функцию для
вывода
лицензионной
информации на web-
странице.
Замечание: Если web-сайт состоит из нескольких страниц,
достаточно вызвать эту функцию в конце каждой страницы —
и вам не придется заново переписывать один и тот же текст. А
когда наступит 2010 год, одно простое изменение текста,
выводимого этой функцией, приведет к автоматическому
обновлению всех страниц. Если бы не преимущества
функционального программирования, пришлось бы вручную
редактировать все страницы, на которых выводится
лицензионная информация.
!!!
22. Переменная
$site_name, значение
которой присваивается
за пределами
display_copy-right(),
передается функции в
качестве параметра.
Вложенные функции
Функции можно вызывать внутри других
функций — по аналогии с тем, как одна
управляющая конструкция (if, while, for и
т. д.) может находиться внутри другой.
Такая возможность удобна в любых
программах, и в больших, и в малых,
поскольку она увеличивает степень
модульности приложения и упрощает
сопровождение программы
Вызов встроенной функции DATE
Также допускается объявление функций внутри других функций.