Рубрики
Uncategorized

вопросы для интервью на php 2019 года

Автор оригинала: David Wong.

I. Базовая часть PHP

1. Одним из преимуществ PHP является кросс-платформенность. Что такое кросс-платформа?

Оптимальной рабочей средой для PHP является Apache + MySQL + PHP. Эта рабочая среда может быть настроена в различных операционных системах (таких как Windows, Linux и т.д.) и не ограничена операционной системой, поэтому она называется кросс-платформенной

2. Сколько методов представления данных существует в веб-разработке? В чем разница? Каким способом пользуется Baidu?

Разница в получении и публикации: (1) видимость URL-адреса: параметр URL-адреса метода виден, сообщение невидимо

(2) кэшируемость: режим get кэшируется, режим post-нет.

(3) размер передаваемых данных: обычно get передает размер данных не более 2k-4k (в зависимости от разных браузеров, ограничение разное, но разница невелика); размер данных для передачи после запроса устанавливается в соответствии с файлом конфигурации php .ini, который также может быть бесконечным.

(4) передача данных: get передается через параметры сращивания столбцов URL-адресов, а post передается через тело.

Рекомендация: 1. Тип Get менее безопасен, чем тип post. Рекомендуется использовать тип отправки данных post для конфиденциальной информации; 2. Get рекомендуется для запроса данных; post рекомендуется для добавления, изменения или удаления данных; Baidu использует метод get, поскольку его можно увидеть по URL-адресу

3. Освоите, какой фреймворк, движок шаблонов и систему PHP

Фреймворк: существует множество фреймворков, таких как Ci, Yii, laravel и так далее. Чему мы научились, так это думать о движке PHPTemplate: их очень много. Они есть в учебнике. То, что мы узнали, – это система Smarty: существует множество продуктов, таких как: Kangsheng (UCHOME, SupeSite, discuzx и т. Д.), система empire, Dede (плетение снов), ECSHOP и т. Д. мы изучили dedecms и ECSHOP

4. Какие веб-интерфейсные технологии вы освоили?

Владеет версткой страниц div + CSS, JavaScript, фреймворком jQuery, обработкой изображений в Photoshop

5. В чем преимущества Ajax?

AJAX-это технология асинхронной передачи, которая может быть реализована с помощью JavaScript или jQuery framework для локального обновления, снижения нагрузки на сервер и улучшения пользовательского интерфейса.

6. Безопасность очень важна для набора программ. На какие механизмы безопасности следует обратить внимание при разработке?

(1) используйте проверочный код, чтобы предотвратить заполнение регистрационной машины водой.

(2) используйте предварительную обработку, параметры привязки, фильтрацию параметров и экранирование для предотвращения внедрения SQL

(3) используйте токен для предотвращения удаленной отправки и используйте токен для проверки статуса входа в систему.

7. Как повысить эффективность разработки программ?

(1) оптимизируйте инструкцию SQL, старайтесь не использовать select * в инструкции запроса, какое поле использовать, чтобы найти какое поле; используйте меньше подзапросов вместо соединений с таблицами; используйте меньше нечетких запросов.

(2) создайте индекс в таблице данных.

(3) кэшируйте данные, часто используемые в программе (например, используя redis для кэширования данных, например, используя ob для динамической статики страницы и т. Д.).

((4) сделайте мастер-подчиненную копию MySQL и отделите чтение от записи. (повышение эффективности выполнения mysql и скорости запросов)

(5) используйте nginx для балансировки нагрузки. (равномерно распределите давление доступа на полиморфные серверы)

8. Можно ли использовать PHP с другими базами данных?

PHP лучше всего сочетается с базой данных MySQL. Конечно, PHP также можно использовать с другими базами данных, такими как PostgreSQL, sqlserver, Oracle, sqllite и т.д.

9. В настоящее время в программировании часто используется трехуровневая структура MVC. К каким трем уровням относится MVC соответственно и каковы их преимущества?

Три уровня MVC-это бизнес-модель, представление и контроллер. Уровень контроллера вызывает модель для обработки данных, а затем отображает данные на уровень представления для отображения.

Преимущества заключаются в следующем: ① возможность повторного использования кода может быть реализована, чтобы избежать избыточности кода; ② разделение кода между M и V может быть реализовано так, чтобы одна и та же программа могла использовать разные формы выражения

10. Понимание формата данных JSON?

JSON (обозначение объектов JavaScript) – это облегченный формат обмена данными. Формат данных JSON является фиксированным и может использоваться для передачи данных на нескольких языках. Функция обработки формата JSON в PHP-это json_decode (строка $JSON [, bool $Assoc]), которая принимает строку в формате JSON и преобразует ее в переменную PHP. Параметр представляет собой строку в формате JSON, подлежащую декодированию. Assoc когда параметр равен true, вместо объекта будет возвращен массив; Json_encode: преобразует переменные PHP в формат JSON.

11. В чем разница между print, echo и print pur?

(1) как эхо, так и печать могут выполнять вывод. Разница в том, что echo не является функцией и не имеет возвращаемого значения, в то время как print-это функция с возвращаемым значением. Так что будет быстрее, если вы просто выведете эхо. Print_r обычно используется для печати информации о переменных и обычно используется при отладке. ((2) печать-это строка печати (3) печать предназначена для печати составного типа, такого как объект массива

12. В чем разница между сеансом и файлом cookie?

(1) место хранения: сеанс хранится на сервере, а файл cookie хранится в браузере (2) безопасность: безопасность сеанса выше, чем у файлов cookie (3) сеанс-это “услуга сеанса”, которую необходимо открывать при использовании. Файлы cookie не нужно открывать, но их можно использовать напрямую

13. Какие общие функции PHP использует для обработки массивов? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

(1) array() создает массив

(2) in_array (), чтобы определить, находится ли элемент в массиве

(3) функция count() возвращает количество элементов в массиве

(4) array_merge() объединяет несколько массивов в один массив

(5) сравните различия между двумя или более массивами

(6) массив? Функция Intersect() возвращает пересечение двух или более массивов

(7) array_keys() получает список ключей массива

((8) значения массива() возвращает список значений массива

(9) array_unique() удаляет повторяющиеся значения в массиве

(10) array_push() вставляет один или несколько элементов в конец массива

(11) array_pop() всплывает и возвращает последнюю единицу массива (стека)

(12) array_walk() использует определяемые пользователем функции для обратного вызова каждого элемента в массиве

14. Общие функции, используемые PHP для обработки строк? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

(1) обрезка () удаляет пробелы и другие символы с обеих сторон строки;

(2) strlen() возвращает длину строки

(3) mb_strlen() получает длину строки (можно указать код символа и вычислить длину строки)

(4) substr () возвращает часть строки;

(5) замена подстроки str_replace()

(6) str_repeat() повторяет строку

(7) is_string() определяет, является ли переменная строкой;

(8) str_shuffle() случайным образом скремблирует строку

(9) sprintf() возвращает строку, сгенерированную из отформатированной строки (обычно используется для получения имени таблицы данных после разделения таблицы)

((10) первое вхождение строки поиска str str()

(11) добавление косых черт ссылается на строки с обратными косыми чертами

15. Общие функции времени обработки PHP? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

(1) дата () форматирует местное время/дату.

(2) getdate() получает информацию о дате/времени.

(3) установка часового пояса по умолчанию даты() устанавливает часовой пояс по умолчанию.

(4) часовой пояс по умолчанию даты get() возвращает часовой пояс по умолчанию.

(5) mktime() возвращает метку времени UNIX даты.

(6) strtotime() преобразует описание даты и времени любой строки в метку времени UNIX

(7) strftime() форматирует местное время/дату в соответствии с региональными настройками

16. Какие функции PHP использует для обработки баз данных? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

Пожалуйста, обратитесь к руководству по PHP. Очень важно тщательно это проверить

17. Общие функции операционных файлов PHP? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

(1) откройте файл fopen()

(2) прочитайте файл fgets(); примечание: файл “получить” содержимое() также является файлом для чтения

(3) запишите файл fwrite(); примечание: содержимое файла “поместить” () также может быть записано в файл

(4) закройте дескриптор файла fclose()

(5) переместить/переименовать файл переименовать()

(6) копия ()

(7) создайте файл VIM или коснитесь

(8) удалите ссылку на файл()

(9) получить информацию о последнем доступе к файлу fileatime ()

(10) получите время последнего изменения файла filemtime()

(11) получить размер файла размер файла ()

(12) получите тип файла filetype ()

(13) получить состояние сведений о файле()

(14) определите, является ли каталог “dir ()

18. Общие функции рабочего каталога (папки) PHP? (сосредоточьтесь на “параметрах” и “возвращаемых значениях” функций)

(1) откройте каталог opendir ()

(2) прочитать каталог readdir ()

(3) удалите каталог rmdir ()

(4) закрыть дескриптор каталога closedir()

(5) создайте каталог MKDIR ()

(6) верните часть каталога имени пути ()

(7) получить текущий рабочий каталог getcwd()

(8) перечислите файлы и каталоги по указанному пути

II. База данных

Каковы общие продукты системы управления реляционными базами данных? Ответ: Oracle, SQL server, mysql, Sybase, DB2, access и т.д.

Какие части включает SQL? Каковы ключевые слова операции в каждой части? Ответ: SQL включает в себя четыре части: определение данных (DDL), управление данными (DML), управление данными (DCL) и запрос данных (DQL). Определение данных: создание таблицы, изменение таблицы, удаление таблицы, создание/удаление индекса и т. Д. Обработка данных: выбор, вставка, обновление, удаление, Контроль данных: Предоставление, отзыв запроса данных: Выбор

Каковы ограничения целостности? Целостность данных относится к точности и надежности данных.

Включать:

(1) целостность сущности: Указывает, что каждая строка таблицы является единственной сущностью в таблице.

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

(3) ссылочная целостность: это означает, что данные первичного ключа и внешнего ключа двух таблиц должны быть согласованными, обеспечивая согласованность данных между таблицами и предотвращая потерю данных или распространение бессмысленных данных в базе данных.

(4) целостность определения пользователя: различные системы реляционных баз данных часто нуждаются в некоторых специальных ограничениях в соответствии с различными прикладными средами. Целостность определения пользователя-это ограничение конкретной реляционной базы данных, которое отражает семантические требования, которым должно соответствовать конкретное приложение.

Что такое бизнес? А его характеристики? Транзакция: это серия операций с базой данных и основная логическая единица приложения базы данных.

Характеристика:

(1) атомарность: то есть неделимость. Либо все транзакции выполняются, либо все транзакции не выполняются.

((2) последовательность или сильная способность. Выполнение транзакции изменяет базу данных из одного правильного состояния в другое

(3) изоляция. Не разрешается вносить какие-либо изменения в данные транзакции в любую другую транзакцию до того, как транзакция будет правильно зафиксирована,

(4) долговечность. После правильной фиксации транзакции ее результаты будут навсегда сохранены в базе данных. Даже если после совершения транзакции возникнут другие сбои, результаты обработки транзакции будут сохранены.

Простое понимание: все операции в транзакции либо успешны, либо завершены неудачно.

Что такое замок? База данных-это общий ресурс, используемый несколькими пользователями. Когда несколько пользователей одновременно получают доступ к данным, в базе данных одновременно будет несколько транзакций, обращающихся к одним и тем же данным. Если мы не контролируем параллельную операцию, мы можем прочитать и сохранить неверные данные, что приведет к нарушению согласованности базы данных.

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

Что такое вид? Что такое курсор? Представление-это виртуальная таблица с теми же функциями, что и физическая таблица. Вы можете добавлять, изменять, запрашивать представление или работать с ним. Представление обычно представляет собой подмножество строк или столбцов, содержащих одну или несколько таблиц. Изменения в представлении не влияют на базовую таблицу. Это облегчает нам получение данных, чем запросы к нескольким таблицам.

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

Что такое хранимая процедура? Как позвонить? Хранимая процедура-это предварительно скомпилированная инструкция SQL, преимущество которой заключается в том, что она допускает модульное проектирование, то есть ее нужно создать только один раз и впоследствии можно много раз вызывать в программе. Если для выполнения операции требуется несколько исполнений SQL, использование хранимых процедур выполняется быстрее, чем простое выполнение инструкций SQL. Хранимая процедура может быть вызвана с помощью объекта command.

Какова функция индекса? И в чем его преимущества и недостатки? Индекс-это специальная таблица запросов, которая может использоваться поисковой системой базы данных для ускорения поиска данных. Это очень похоже на реальный каталог книг, вы можете найти нужные данные, не запрашивая все содержимое книги. Индексы могут быть уникальными. Создание индекса позволяет указать один или несколько столбцов.

Недостатком является то, что это замедляет скорость ввода данных, но также увеличивает размер базы данных.

Как понять три парадигмы? Первая парадигма: 1NF-это атомарное ограничение на атрибуты, которое требует, чтобы атрибуты были атомарными и не могли быть разложены снова;

Вторая парадигма: 2NF-это ограничение уникальности записей, которое требует, чтобы записи имели уникальную идентичность, то есть уникальность сущностей;

Третья парадигма: 3NF-это ограничение на избыточность полей, то есть любое поле не может быть получено из других полей, что не требует избыточности полей..

Что такое базовая таблица? Что такое вид? Базовая таблица-это таблица, которая существует независимо. В SQL связь соответствует таблице.

Представление-это таблица, экспортированная из одной или нескольких базовых таблиц. Само представление не хранится независимо в базе данных, это виртуальная таблица

В чем преимущества этого вида? (1) просмотр может упростить работу пользователя

(2) представления позволяют пользователям просматривать одни и те же данные с разных точек зрения;

(3) представление обеспечивает определенную степень логической независимости базы данных;

(4) просмотр может обеспечить защиту конфиденциальных данных.

Что означает null Значение null означает неизвестное: это не означает ” (пустая строка).

Любое сравнение значения null приводит к нулевому значению.

Вы не можете сравнить какое-либо значение с нулевым значением и логически хотите получить ответ.

Используйте значение null для оценки null

В чем разница между первичным ключом, внешним ключом и индексом? Разница между первичным ключом, внешним ключом и определением индекса: Первичный ключ – однозначно идентифицирует запись. Это не может быть дубликат или пустой внешний ключ – внешний ключ таблицы является первичным ключом другой таблицы. Внешний ключ может иметь повторяющиеся или нулевые значения Индекса – это поле не имеет повторяющегося значения, но может иметь нулевое значение Эффект: Первичный ключ – используется для обеспечения целостности данных Внешний ключ – используется для установления контакта с другими таблицами Индекс – повышение скорости сортировки запросов Номер: Первичный ключ – может быть только один внешний ключ первичного ключа – таблица может иметь несколько внешних ключей Индекс – таблица может иметь несколько уникальных индексов

Что вы можете использовать, чтобы гарантировать, что поля в таблице принимают значения только в определенном диапазоне? Ограничение проверки, определенное в таблице базы данных, используется для ограничения входного значения столбца.

Каковы способы оптимизации операторов SQL? (выберите несколько) (1) предложение where: связь между таблицами where должна быть записана до других условий where, а условия, которые могут отфильтровать максимальное количество записей, должны быть записаны в конце предложения where. Иметь последнее.

(2) использование существует для замены в и не существует для замены не в.

(3) избегайте использования вычислений по столбцам индекса

(4) избегайте использования “равно нулю” и “не равно нулю” в столбцах индекса

(5) чтобы оптимизировать запрос, мы должны стараться избегать полного сканирования таблиц. Во-первых, мы должны рассмотреть возможность построения индексов по столбцам, включенным в ” где ” и “по порядку”.

(6) старайтесь избегать суждения о нулевом значении поля в предложении where, иначе механизм откажется от индекса и просканирует всю таблицу

(7) операции выражения над полями в предложении where следует избегать, насколько это возможно, что приведет к тому, что механизм откажется от индексирования и отсканирует всю таблицу

В чем разница между “связанным подзапросом” и “не связанным подзапросом” в операторах SQL? ((1) не связанный подзапрос-это подзапрос, который не зависит от внешнего запроса. Подзапрос выполняется один раз, и значение передается во внешний запрос после выполнения.

(2) выполнение соответствующего подзапроса зависит от данных внешнего запроса. Если внешний запрос выполняет одну строку, подзапрос будет выполнен один раз.

Следовательно, некоррелированные подзапросы более эффективны, чем коррелированные подзапросы

В чем разница между char и varchar? Символ-это тип фиксированной длины, varchar-тип переменной длины.

Разница:

В столбце данных типа char (m) каждое значение занимает мбайт. Если длина меньше m, MySQL дополнит ее пробелом справа. В операции извлечения заполненные пробелы будут удалены.

В столбце данных типа varchar (m) каждое значение занимает ровно столько байтов плюс байт, чтобы записать его длину (то есть общая длина составляет L + 1 байт).

Механизм хранения MySQL, разница между MyISAM и InnoDB. MyISAM-это механизм хранения без транзакций; он подходит для приложений с частыми запросами; блокировка таблицы не вызывает взаимоблокировки; транзакция не поддерживается. Подходит для небольших данных и небольшого параллелизма

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

Каковы типы таблиц данных MyISAM, InnoDB, куча, Боб, архив, CSV и т.д.

MyISAM: зрелый, стабильный, простой в управлении и быстрый для чтения. Некоторые функции не поддерживают (транзакции и т.д.) Блокировки на уровне таблиц.

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

База данных Mysql используется в качестве хранилища издательской системы с более чем 50000 приращениями в день. Ожидается, что эксплуатация и техническое обслуживание продлятся три года. Как его оптимизировать? (1) разработайте хорошую структуру базы данных, обеспечьте частичную избыточность данных, максимально избегайте запросов на объединение и повысьте эффективность.

(2) выберите соответствующий тип данных поля таблицы и механизм хранения и добавьте соответствующий индекс.

(3) выполняйте разделение чтения и записи между ведущим и ведомым копиями MySQL.

(4) разделите таблицу данных на разные таблицы, чтобы уменьшить объем данных в одной таблице и повысить скорость запросов.

(5) добавьте механизмы кэширования, такие как redis, memcached и т.д.

(6) создавайте статические страницы (например, кэш ob) для страниц, которые не часто меняются.

(7) напишите эффективный SQL. Например, выберите * из таблицы, чтобы выбрать поле 1, поле 2, поле 3 из таблицы

Какие методы вы используете для решения статистических проблем посещений страниц веб-сайтов с большим трафиком? (1) подтвердите, может ли сервер поддерживать текущий трафик.

(2) оптимизируйте доступ к базе данных.

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

(4) контроль загрузки файла.

(5) выполните балансировку нагрузки и используйте разные хосты для шунтирования.

(6) используйте программное обеспечение статистики просмотров, чтобы понять объем посещений и оптимизировать его.

3. Объектно-ориентированная часть

1. Что такое объектно-ориентированное? (поймите ответ)

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

Существует три характеристики объектно-ориентированного: инкапсуляция, наследование и полиморфизм.

Теперь чистый язык OO в основном состоит из Java и C, PHP и C + + также поддерживают OO, а C ориентирован на процессы.

2. Кратко опишите права доступа частных, защищенных и общедоступных модификаторов.

Частный: частный член, доступ к которому возможен только внутри класса.

Защищено: защита членов, доступ к которым можно получить внутри класса и в унаследованных классах.

Публичный: публичный участник, полностью открытый, без ограничений доступа.

3. В чем разница между кучей и стеком?

Стек-это пространство памяти, выделяемое во время компиляции, поэтому в коде должно быть четкое определение размера стека;

Куча-это пространство памяти, динамически выделяемое во время выполнения программы. Вы можете определить размер кучи памяти для выделения в зависимости от выполнения программы.

4. Основные различия между XML и HTML

Различные требования к грамматике:

(1) он не чувствителен к регистру в HTML и строго чувствителен к регистру в XML.

(2) в HTML иногда это не строго. Если контекст четко показывает, где заканчивается абзац или ключ списка, вы можете опустить его

Или что-то в этом роде. В XML это строгая древовидная структура, и конечный тег не должен быть опущен. (3) в XML элемент с одним тегом и без соответствующего конечного тега должен заканчиваться символом/. Таким образом, синтаксический анализатор знает, что ему не нужно искать конечный тег.

(4) в XML значения атрибутов должны быть заключены в кавычки. В HTML кавычки доступны и не используются.

(5) в HTML вы можете иметь имена атрибутов без значений. В XML все атрибуты должны иметь соответствующие значения.

(6) в XML-документах синтаксический анализатор автоматически не удаляет пробелы; однако HTML отфильтровывает пробелы.

Разные Теги:

(1) HTML использует встроенные теги; XML-нет.

(2) HTML-теги предопределены; XML-теги являются бесплатными, настраиваемыми и расширяемыми.

Различные функции:

(1) html используется для отображения данных; XML используется для описания данных и хранения данных, поэтому его можно использовать в качестве постоянного носителя! HTML объединяет данные и отображение вместе и отображает данные на странице; XML разделяет данные и отображение. XML предназначен для описания данных с акцентом на их содержание. Html предназначен для отображения данных с акцентом на внешний вид данных.

(2) XML не является заменой HTML. XML и HTML-это два разных языка. XML не предназначен для замены HTML; на самом деле XML можно рассматривать как дополнение к HTML. Цель XML и html различна. Цель дизайна HTML состоит в том, чтобы отображать данные и фокусироваться на их внешнем виде. Цель разработки XML состоит в том, чтобы описать данные и сосредоточиться на содержании данных.

(3) лучшим описанием XML может быть следующее: XML-это кроссплатформенный, аппаратно-программный независимый инструмент для обработки и передачи информации.

(4) XML будет повсеместным в будущем. XML станет самым популярным инструментом для обработки и передачи данных.

5. Каковы особенности OO?

Существуют инкапсуляция, наследование и полиморфизм. Если это четыре аспекта, добавьте: абстракция.

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

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

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

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

6. Каковы концепции и различия между абстрактными классами и интерфейсами?

Абстрактный класс: это специальный класс, который не может быть создан и может использоваться только как родительский для других классов. Используйте ключевое слово abstract для объявления.

Интерфейс: это специальный абстрактный класс, но также и специальный класс, использующий объявление интерфейса.

Разница:

(1) работа абстрактного класса реализуется путем наследования ключевого слова extends, в то время как использование интерфейса реализуется путем реализации ключевого слова.

(2) абстрактные классы имеют элементы данных, которые могут инкапсулировать данные, но интерфейс не имеет элементов данных.

(3) в абстрактном классе может быть конструктор, но в интерфейсе конструктора нет.

(4) методы абстрактных классов могут быть изменены частными, защищенными и открытыми ключевыми словами (абстрактные методы не могут быть частными), в то время как методы в интерфейсах могут быть изменены только открытыми ключевыми словами.

(5) класс может наследовать только от одного абстрактного класса, и класс может реализовывать несколько интерфейсов одновременно.

(6) код реализации метода-члена может быть в абстрактном классе, но не в интерфейсе.

7. Что такое конструкторы, деструкторы и каковы их функции?

Конструктор (метод) – это первый метод, автоматически вызываемый объектом после его создания. Он существует в каждом объявленном классе и является специальным методом-членом. Функция заключается в выполнении некоторых задач инициализации. Использовать \\\\\\\\\\\\\\\\\\.

Деструктор (метод) – это последний метод, автоматически вызываемый объектом перед его уничтожением. Недавно добавленное содержимое в PHP 5 используется для выполнения некоторых определенных операций перед уничтожением объекта, таких как закрытие файлов и освобождение памяти.

8. Как перегрузить родительский класс, например

Перегрузка, то есть переопределение метода родительского класса, то есть замена унаследованного метода из родительского класса методом дочернего класса, также называется перезаписыванием метода.

Ключом к переопределению родительского метода является создание того же метода в дочернем классе, включая имя метода, параметр и тип возвращаемого значения. PHP требует только одного и того же имени метода.

9. Каковы распространенные магические методы? Проиллюстрируйте примерами

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

__ Вызывается автоматически, когда функция construct() создает экземпляр класса.

__ Вызывается автоматически при использовании объекта класса destruct ().

__Set() вызывается, когда неопределенному свойству присваивается значение.

__ Вызывается, когда get() вызывает неопределенное свойство.

____Is set() вызывается при использовании функции isset() или empty ().

__Unset() вызывается при использовании функции unset ().

__ Вызывается, когда функция sleep() сериализуется с помощью serialize.

__ Вызывается, когда функция wakeup() десериализуется с помощью функции unserialize.

__Call () вызывается, когда вызывается несуществующий метод.

____Call static() вызывает статический метод, который не существует.

__Tostring() вызывается, когда объект преобразуется в строку. Как эхо.

__Invoke () вызывается при попытке вызвать объект в качестве метода.

__Set ﹣ state() вызывается при использовании функции VaR ﹣ export (). Принимает параметр массива.

__Clone () вызывается, когда для копирования объекта используется функция clone.

Каковы три ключевых слова 10, $this, ” я ” и “родитель”? В каких случаях?

$этот текущий объект

Самостоятельный текущий класс

Родитель родитель текущего класса

$это используется в текущем классе. Используйте – > для вызова свойств и методов.

Self также используется в текущем классе, но вам нужно использовать:: вызов.

В классе используется родитель.

11, как определить константы в классах, как вызывать константы в классах и как вызывать константы вне классов.

Константа в классе является константой-членом. Константа-это постоянное значение.

Определите константы, используя ключевое слово const

Например: константа 1415326;

Независимо от того, находится ли класс внутри или вне класса, постоянный доступ и переменный доступ различны. Константам не нужно создавать экземпляры объектов,

Формат константы доступа вызывается именем класса плюс символом операции области (двойное двоеточие).

А именно: Имя класса:: имя константы класса;

12. Оператор области действия: как его использовать? В каких случаях?

(1) вызов константы класса

(2) вызов статических методов (методы класса, украшенные статикой)

13. Как работает метод автоматической загрузки ()?

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

Когда программа выполняется для создания экземпляра класса, если файл класса не представлен до создания экземпляра, то \.

Эта функция найдет путь к файлу класса в соответствии с именем созданного класса. Когда будет определено, что файл класса действительно существует в пути к файлу класса

Выполните включение или требование для загрузки класса, а затем программа продолжит выполнение. Если файл не существует по этому пути, будет выведено сообщение об ошибке.

Используя магические функции автоматической загрузки, вам не нужно писать много функций включения или требования.

IV. Думайфп

1. Общий фреймворк PHP

Ответ: ThinkPHP, laravel, Yii, CI и т.д.

2. Как понять файл с одной записью в TP?

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

Въездные документы в основном включают:

(1) определите путь к структуре, путь к проекту и имя проекта (необязательно) (2) определите соответствующие константы режима отладки и режима работы (необязательно) (3) загрузка файла ввода фрейма (требуется)

3. Что такое слой MVC в ThinkPHP? (понимание)

MVC-это способ разделения уровня логики и уровня представления приложения. ThinkPHP также основан на шаблоне проектирования MVC. MVC-это просто абстрактная концепция без каких-либо конкретных положений. Слой MVC в ThinkPHP примерно отражен в:

Модель: модель определяется классом модели.

Контроллер (c): контроллер приложений (класс приложений core controller) и actioncontroller выполняют роль контроллера. Контроллер действий завершает управление бизнес-процессами, в то время как контроллер приложений отвечает за управление расписанием.

Представление: оно состоит из класса представления и файла шаблона. Шаблон разделен на 100% и может быть просмотрен и создан независимо.

Но на самом деле ThinkPHP не полагается на M или V, то есть ни одна модель или представление не могут работать так же хорошо. Он даже не полагается на С. Это связано с тем, что ThinkPHP имеет главный контроллер поверх действия, т. Е. контроллер приложений, который отвечает за основное планирование приложений. В отсутствие C должно быть представление v, иначе оно больше не является полным приложением. В целом, модель Thinkphp MVC предоставляет только средства гибкой разработки, а не придерживается самого MVC.

4. Как оптимизировать SQL? (студенты могут понять объяснение, стоящее за этим, а затем они могут сказать общее значение в соответствии со своим собственным пониманием.)

(1) выберите правильный механизм хранения

MyISAM подходит для некоторых приложений, которым требуется много запросов, но он не очень хорош для тех, у кого много операций записи. Даже если вам просто нужно обновить поле, вся таблица будет заблокирована, в то время как другие процессы, даже процесс чтения, не смогут работать до завершения операции чтения. Кроме того, MyISAM очень быстр для вычислений, таких как количество выбранных (*). Тенденцией InnoDB станет очень сложный механизм хранения данных. Для некоторых небольших приложений это будет медленнее, чем MyISAM. Но он поддерживает “блокировку строки”, поэтому будет лучше, когда будет больше операций записи. Кроме того, он также поддерживает более продвинутые приложения, такие как транзакции.

(2) оптимизация типов полей данных Имейте в виду принцип, что чем меньше столбец, тем быстрее он будет. Если таблица содержит всего несколько столбцов (например, таблица словаря, таблица конфигурации), то у нас нет причин использовать int в качестве первичного ключа. Более экономично использовать mediumint, smallint или меньший tinyint. Если вам не нужно записывать время, используйте дату намного лучше, чем время. Конечно, вам также нужно оставить достаточно места для расширения.

(3) добавьте индекс в поле поиска Индекс не обязательно должен быть первичным ключом или уникальным полем. Если в вашей таблице есть поле, которое вы всегда используете для поиска, лучше всего его проиндексировать, если только поле, которое вы ищете, не является большим текстовым полем, вам следует создать полнотекстовый индекс.

(4) избегайте использования select для чтения большего количества данных из базы данных, и запрос будет выполняться медленнее. Кроме того, если ваш сервер базы данных и веб-сервер являются двумя независимыми серверами, это увеличит нагрузку на сетевую передачу. Даже если вы хотите запросить все поля в таблице данных, старайтесь не использовать подстановочные знаки. Возможно, будет удобнее использовать встроенные определения исключений полей.

(5) используйте перечисление вместо varchar Тип перечисления очень быстрый и компактный. На самом деле в нем хранится tinyint, но он отображается в виде строки. В результате идеально использовать это поле для составления списка опций. Например, если значения таких полей, как пол, национальность, отдел и статус, ограничены и фиксированы, следует использовать перечисление вместо varchar.

(6) используйте not null как можно чаще, если у вас нет особых причин использовать значения null, вы всегда должны сохранять свои поля ненулевыми. Null на самом деле требует дополнительного места, и при сравнении ваша программа будет более сложной. Конечно, это не означает, что вы не можете использовать null. Реальность очень сложна. Все еще есть некоторые случаи, когда вам нужно использовать null.

(7) измеритель фиксированной длины будет быстрее, если все поля в таблице имеют “фиксированную длину”, вся таблица считается “статической” или “фиксированной длиной”. Например, в таблице нет полей следующих типов: varchar, текст, большой двоичный объект. Пока вы включаете одно из этих полей, таблица не является “статической таблицей фиксированной длины”, поэтому механизм MySQL будет использовать другой метод для ее обработки.

Таблицы фиксированной длины повысят производительность, потому что MySQL будет искать быстрее, потому что эти фиксированные длины легко вычислить смещение следующих данных, поэтому чтение будет быстрым. Если поле не имеет фиксированной длины, программе необходимо находить первичный ключ каждый раз, когда она находит следующий. Кроме того, таблицы фиксированной длины легче кэшировать и перестраивать. Однако единственным побочным эффектом является то, что поля фиксированной длины будут занимать некоторое пространство, потому что поля фиксированной длины, независимо от того, используете вы их или нет, должны выделять так много места.

5. Как понять поведение в архитектуре ThinkPHP 3.0 (ядро + поведение + драйвер)?

(1) ядро: это основной код фреймворка, который является незаменимым. Сам TP представляет собой фреймворк, разработанный на основе MVC.

(2) поведение: поведение играет важную роль в архитектуре новой версии ThinkPHP. В ядре системы задано множество расширений тегов, и каждое расположение тегов, в свою очередь, может выполнять свое собственное независимое поведение. Таким образом, рождается расширение поведения, и многие системные функции выполняются с помощью встроенного расширения поведения. Все расширения поведения являются сменными и увеличенными, таким образом, можно собрать основу нижней рамки.

(3) драйвер: драйвер базы данных, драйвер кэша, драйвер библиотеки меток, драйвер механизма шаблонов и расширение внешнего класса.

6. Что такое конфигурация соглашения?

Так называемая конфигурация соглашения-это файл конфигурации платформы. Этот файл находится в convention.php в каталоге core framework. Содержимое конфигурации выглядит следующим образом. Поскольку этот файл принадлежит файлу конфигурации фреймворка, в процессе разработки он в основном используется для нас в качестве эталонного экземпляра. Мы редко изменяем содержимое конфигурации этого файла, но чаще настраиваем содержимое конфигурации в модуле или общем в соответствии с определением поля и комментариями в обычной конфигурации в соответствии с требованиями.

7. Что такое SQL-инъекция? (понимание)

Атака с использованием SQL-инъекций является одним из распространенных методов, используемых хакерами для атаки на базу данных.

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

8. Как ThinkPHP может предотвратить внедрение SQL? (понимание)

(1) попробуйте использовать режим массива для условий запроса, что является более безопасным способом;

(2) если вам необходимо использовать условия строкового запроса, используйте механизм предварительной обработки;

(3) используйте параметры привязки

(4) включите проверку типа поля данных, и вы сможете использовать числовые типы данных; (версия 3.1 уже принудительно проверила тип поля)

(5) используйте механизм автоматической проверки и завершения для выполнения определяемой пользователем фильтрации для приложения;

(6) использование проверки типа поля, автоматической проверки и механизма автоматического завершения, чтобы избежать вредоносного ввода данных.

9. Как включить режим отладки? В чем преимущества режима отладки?

Включить режим отладки очень просто. Вам нужно только добавить строку кода определения константы в файл ввода:

//Откройте режим отладки. Рекомендуется открывать этап развертывания на этапе разработки. Обратите внимание или установите значение false (“APP_DEBUG”, true); Преимущества режима отладки заключаются в следующем: включите ведение журнала, любая информация об ошибках и отладочная информация будут подробно записаны для отладки; отключите кэширование шаблонов, и изменение шаблона вступит в силу немедленно; запишите журналы SQL для анализа SQL; отключите кэширование полей, и изменение полей таблицы данных не будет затронуто кэшированием; строго проверьте случай файла (даже на платформе Windows), чтобы помочь вам, его можно легко использовать на разных этапах процесса разработки, включая разработку, тестирование, демонстрацию и любые другие потребности. Различные режимы приложения могут быть настроены с помощью независимых файлов конфигурации проекта.

10. Какие режимы конфигурации поддерживаются в TP? Приоритет?

Конфигурация соглашения – > конфигурация приложения – > конфигурация режима – > конфигурация отладки – > конфигурация состояния – > конфигурация модуля – > расширенная конфигурация – > динамическая конфигурация

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

11. Во что входят режимы URL-адресов? Что такое значение по умолчанию?

ThinkPHP поддерживает четыре режима URL, которые можно определить, установив параметр URL ﹐ mode, включая обычный режим, pathinfo, перезапись и режим совместимости. Режим по умолчанию: режим pathinfo, установите режим URL ﹐ равным 1

12. Каковы системные переменные в TP? Как получить системные переменные?

((1) системные переменные: сервер, сервер, сервер s, env, post, get, запрос, запрос, запрос запроса, переменные сеанса и cookie

(2) получить системные переменные:

{Ошибка синтаксического анализа KaTeX: Ожидалось “EOF”, получено”} ” в позиции 25: … Ver. Имя скрипта}//вывод ` сервер [переменная’имя скрипта’]

{Ошибка синтаксического анализа KaTeX: Ожидалось “EOF”, получено”} ” в позиции 22: … Сеанс. Идентификатор пользователя}//выведите переменную” сеанс [идентификатор пользователя”]

{Ошибка синтаксического анализа KaTeX: Ожидаемое “EOF”, получено”} ” в позиции 21: … get. Номер страницы}//выведите переменную “get [‘Номер страницы’]

{Ошибка синтаксического анализа KaTeX: Ожидалось “EOF”, получено”} ” в позиции 18: … Чернила. Печенье. Имя}//выведите переменную “cookie [‘имя ‘]

13. В чем разница между функцией D и функцией m в рамках ThinkPHP?

Модель создания экземпляра метода M не требует, чтобы пользователь определял класс модели для каждой таблицы данных. Метод D может автоматически определять класс модели. Если существует пользовательский класс модели, создайте экземпляр пользовательского класса модели. Если нет пользовательского класса модели, метод m будет автоматически вызван для создания экземпляра базового класса модели. В то же время экземпляр модели не будет создаваться повторно (одноэлементный режим).

V. интеллектуальный механизм шаблонов

1. В чем разница между компиляцией и кэшированием?

Процесс компиляции Smart заключается в том, чтобы взять шаблон и заменить теги соответствующим PHP-кодом. Это компиляция smart, которая на самом деле представляет собой процесс смешивания PHP и HTML, кэш Smart необходимо открыть вручную. Кэш Smart предназначен для одновременного выполнения скомпилированного файла и создания статической HTML-страницы. Когда вы посетите его снова, вы посетите HTML-файл, поэтому он более эффективен.

2. Что такое Smarty? В чем преимущества Smarty?

Smarty-это движок шаблонов PHP, написанный на PHP. Его цель состоит в том, чтобы отделить PHP-программу от художников, чтобы программисты, которые изменяют логическое содержание программы, не влияли на дизайн страниц художников, а художники, которые изменяют страницу, не влияли на логику программы, что особенно важно в проекте многопользовательского сотрудничества. (также легко разрабатывать программы в нескольких стилях)

Преимущества Smarty

(1) высокая скорость: по сравнению с другими движками шаблонов.

(2) скомпилированный тип: программа, написанная smart, должна быть скомпилирована во время выполнения в PHP-файл с не шаблонной технологией

(3) технология кэширования: она может кэшировать HTML-файл, который пользователь, наконец, видит, в статическую HTML-страницу.

(4) технология подключения: smart может настраивать подключаемые модули.

Не подходит для умных

(1) содержимое, которое необходимо обновлять в режиме реального времени. Например, как и на складе, ему необходимо часто обновлять данные

(2) небольшие проекты. Проект, в котором художники и программисты работают вместе, потому что проект прост

3. Используйте {$Smarty} для сохранения переменных в шаблоне

{Ошибка синтаксического анализа KaTeX: ожидаемое “EOF”, получено”} ” в позиции 16: умно. Возьми. Страница}//аналогично доступу к [странице] в PHP-скрипте {Ошибка синтаксического анализа KaTeX: Ожидаемое “EOF”, получено “}” в позиции 16: smarty.cookies.} {умный.пост.} {Ошибка синтаксического анализа KaTeX: Ожидалось “EOF”, получено”} ” в позиции 16: smarty.сессия.} {умный.сервер.}

Доступ к переменным в PHP в шаблонах 5. Посредник переменных

Краткое описание (обновление) классических вопросов для интервью 2018php – вопросы для интервью на PHP

6. Когда PHP запрашивает базу данных MySQL, при запросе результатов на китайском языке появляется искаженный код. Как это решить?

(1) мета-файл (при настройке разрешения браузера)

(2) настройка кода при подключении к базе данных

(3) использование функции заголовка для определения кодировки в файле PHP

7. Механизм кэширования

Если кэш включен, smart одновременно создаст статическую HTML-страницу. Если установленное время не истечет, при повторном посещении вы получите доступ к HTML-файлу, что сократит время чтения базы данных, поэтому с точки зрения эффективности оно выше.

8. Шаблон назначения и загрузки Smart

$Smarty->назначить(имя,значение) $Smarty->отобразить(‘index.html’)

9. Какова цель технологии шаблонов Smarty?

Чтобы отделить PHP от HTML, художники и программисты выполняют свою собственную работу, не мешая друг другу.

10. Каковы основные интеллектуальные конфигурации?

(1) представить smart.class.php;

(2) создайте экземпляр интеллектуального объекта;

(3) измените путь к шаблону по умолчанию;

(4) измените путь к скомпилированному файлу по умолчанию;

(5) измените путь к файлу конфигурации по умолчанию;

(6) снова измените путь к кэшу по умолчанию.

(7) вы можете указать, следует ли включать кэш.

(8) можно установить разделители слева и справа.

11. На какие детали smart следует обратить внимание в процессе использования?

Smarty-это механизм шаблонов, основанный на концепции MVC, который делит программу страницы на две части: слой просмотра и слой управления, другими словами, интеллектуальная технология отделяет пользовательский интерфейс от PHP-кода. Таким образом, программисты и художники выполняют свою собственную работу, не мешая друг другу.

12. Обратите внимание на следующие проблемы при применении Smart:

(1) правильно настройте smart. В основном это делается для создания экземпляра смарт-объекта и настройки пути к файлу смарт-шаблона;

(2) на странице PHP используются присвоение значения и страница отображения;

(3) Сегменты кода PHP не допускаются в файле смарт-шаблона. Все комментарии, переменные и функции должны быть включены в разделитель.

Vi. система вторичного развития (Dede, ECSHOP)

1. Понимание вторичного развития

Вторая разработка, проще говоря, заключается в настройке и модификации существующего программного обеспечения, расширении функций, а затем достижении желаемых функций, вообще говоря, это не изменит исходное ядро системы.

2、MVC

Обработка модельных данных. Просмотр отображения шаблона. Контроллер управляет процессом. Что такое концепция MVC? В чем заключается основная работа каждого слоя? MVC (контроллер представления модели) – это шаблон разработки программного обеспечения или идея программирования. M относится к слою модели, V относится к слою представления (слой отображения или пользовательский интерфейс), а C относится к уровню контроллера. Цель использования MVC состоит в разделении m и V, чтобы программа могла легко использовать различные пользовательские интерфейсы. При разработке веб-сайта уровень модели, как правило, отвечает за добавление, удаление, изменение и проверку информации таблицы базы данных, уровень представления отвечает за отображение содержимого страницы, уровень контроллера регулирует между M и v. Уровень контроллера решает, какой метод какого класса модели вызывать, После выполнения уровень контроллера решает, какому слою представления назначить результат.

3. При доступе к дополнительной программе разработки после установки возникают некоторые предупреждения и ошибки.

В соответствии с ошибкой измените параметры конфигурации сервера и Baidu

4. Функция, замена шаблона, добавление и модификация функций

Фактически, он также используется для объектно-ориентированного приложения и замены шаблонов, аналогично использованию smart

5. Что вы использовали для вторичного развития?

Dedecms php cmd echo, если у вас есть хорошая основа, вы можете изучить все эти вещи.

6. Лучше ли разрабатывать PHP один или два раза?

Как правило, малые и средние предприятия используют систему CMS для вторичного развития, и все это для повышения эффективности. Конечно, если вы хотите разработать один раз, вы можете использовать фреймворк и у вас будет достаточно времени. Все крупные предприятия разрабатываются командами для устранения проблем с авторским правом.

7. Как в процессе вторичной разработки передается доступ к методу между многими классами?

Это не наследование классов, а комбинация объектов, передающая созданный объект через глобальный

8. Если dedecms изменяет каталог, как решить проблему с невозможностью ввода какого-либо элемента в фоновом режиме?

Измените имя текущего каталога проекта в настройках фонового ядра

9. Как понять пользовательскую модель в dedecms?

В системе Zhineng существует концепция модели контента. Различные модели контента могут использоваться для создания сайтов с различными формами контента. В систему включены следующие модели: общие статьи, Атлас, программное обеспечение, товары, информация о классификации и специальные темы. С помощью модели системы мы можем создавать различные типы сайтов. Например, мы можем создать фотостанцию с Атласом и сайт загрузки программного обеспечения с моделью программного обеспечения. Конечно, модель, прилагаемая к системе, называется моделью системы. Пользователи могут сами определять некоторые модели, такие как книги, музыкальные альбомы и т.д. Только путем настройки этих моделей можно создавать больше сайтов с формами контента. Это эквивалентно тому, что мы автоматически добавили структуру таблиц для адаптации к изменениям текущих требований

10. При разработке и использовании шаблонов в dede необходимо понимать следующие концепции

(1) шаблон таблички (обложки): Он относится к шаблону, используемому домашней страницей веб-сайта или более важным каналом обложки столбца, который обычно называется “идентификацией индекса id.htm”. Кроме того, определенный пользователем одностраничный или пользовательский тег также может выбрать, следует ли поддерживать тег шаблона таблички. Если это так, система будет использовать механизм тегов шаблонов пластин для анализа перед выводом содержимого или созданием определенных файлов.

(2) шаблон списка: шаблон, который ссылается на список всех статей в столбце веб-сайта. Как правило, он называется “идентификация списка id.htm”.

(3) шаблон файла: Шаблон, представляющий страницу просмотра документа, такую как шаблон статьи, обычно называется “идентификация статьи id.htm”.

(4) другие формы: Как правило, шаблоны, включенные в систему, включают: шаблон домашней страницы, шаблон поиска, RSS, шаблон функции компиляции JS и т.д. кроме того, пользователи могут настроить шаблон для создания любого файла.

11. Сколько этикеток используется в Dede?

Такие метки, как содержимое списка, могут использоваться только в пределах его области, метка списка может использоваться только в списке, а метка содержимого может использоваться только в метке содержимого. Глобальные теги можно использовать на всех страницах

12. Знаком с общей библиотекой классов

(например: dedesql. Класс. PHP); знаком с библиотекой системных функций (common. Функция. PHP); знаком с пользовательской библиотекой функций (расширение. Функция. PHP); знаком с файлом ввода переднего плана (общий. Inc.php)

VII. Разработка публичной платформы wechat

1. Механизм работы Wechat

На каком языке осуществляется связь между общедоступным номером и PHP: Xml Как работает Weixin.php получать общедоступные данные? $poststr = $глобалы [“HTTP? Сырой? Пост? Данные”];//получение данных XML-данных

2. Тип сообщения

В настоящее время wechat предоставляет 7 основных типов сообщений: (1) текстовое сообщение (текст); (2) сообщение с изображением; (3) голос (4) видео (5) местоположение; (6) сообщение о ссылке; (7) тип толчка события. Освоите формат передачи данных при отправке различных типов сообщений

3. Функция для чтения всего файла в строку является

File_get_contents

4. Общие функции

Функция для анализа XML-данных в объекты-simplexml_load_string( ) Функция для преобразования строки в массив-expand, а функция для преобразования массива в строку-implode Строка, кодирующая строку URL, является кодом URL

5. Функция sprintf

Это можно найти в руководстве.

6, почему государственная служба WeChat не предоставляет услуги?

(1) сетевая причина, причина интерфейса данных (2) ошибка кода, как угадать причину Проверьте измененную часть, если код правильный, вы можете вывести данные и посмотреть. Использование PHP для управления файлами $myfile(“newfile.txt”, “w”); txt=”ааааааааааа”;fwrite(txt;fwrite(мой файл, txt);fclose(txt);fclose(txt);fclose(мой файл);

7. Нажатие события в пользовательском меню

Одним щелчком мыши Нажмите кнопку перейти Код ссылки сканирование события push Сканирование, нажатие и всплывающее Всплывающее событие система делает фотографии и отправляет фотографии Событие всплывающего события плоттера фотоальбома wechat, чтобы открыть селектор геолокации

8. Функция токена

Проверка механизма безопасности, используемая для проверки безопасности между сервером wechat и сервером PHP

9. Приложение и секрет

При запросе интерфейса API (например, операции с меню) вам необходимо передать два значения, appid и secrect, чтобы получить код авторизации приложения —————- Уведомление об авторских правах: Это оригинальная статья блогера CSDN “suanning”, в соответствии с авторским соглашением CC 4.0 by-sa. Пожалуйста, приложите ссылку на первоисточник и это уведомление для перепечатки. Оригинальная ссылка: https://blog.csdn.net/weixin