Preguntas de la entrevista de PHP sobre el reclutamiento de primavera de 2020 (con respuestas)

PHP

1. Básico

1, la diferencia entre sesión y cookie

  • La sesión es una estructura de datos guardada en el servidor para rastrear el estado de los usuarios. Estos datos se pueden guardar en grupos, bases de datos y archivos.

  • La cookie es un mecanismo para que el cliente guarde la información del usuario, se utiliza para registrar cierta información del usuario y también es una forma de implementar la sesión.

2, ¿Ha utilizado PHP7? Conozca las nuevas funciones

PHP7 ha logrado grandes mejoras en el rendimiento, nuevos operadores, sintaxis de variables unificadas, etc.

3, la variable mágica

Cuando se le preguntó el significado de __dir__, este es el directorio donde se encuentra el archivo de respuesta

4. Método mágico

Esta es una pregunta que se hace a menudo. Recuerdo las que se usan comúnmente. Cuando pregunté __invoke () de repente, estaba confundido
__construct (), __destruct (), __call (), __callStatic (), __get (), __set (), __isset (), __unset (), __sleep (), __wakeup (), __toString (), __invoke (), __set_state (), __clone () y __debugInfo ()

2. Estructura y algoritmo de datos

1, estructura de datos de pila

Siempre que el código pueda usarse para lograr la estructura de datos de la pila

2, tipo de burbuja

Siempre que la clasificación de burbujas se pueda realizar con código

3, la diferencia entre un árbol binario completo y un árbol binario completo

Solo el grado de nodo de dos niveles más bajo puede ser menor que 2, y los nodos de nivel más bajo se concentran en la posición más a la izquierda del árbol binario es un árbol binario completo
y una profundidad de h y 2 ^ h-1 Árbol binario completo

3. Relacionados con la arquitectura

1, ¿Cuál es la diferencia entre Laravel y ThinkPHP, y de qué debería quejarme laravel?

Presenté las diferencias entre enrutamiento, middleware y controlador, acceso a datos, vista, etc.

Tucao puede ser un poco pesado en comparación con algunos proyectos.

2, ¿Composer ha lanzado alguna vez su propio paquete? (Basado en el desarrollo modular PHP de Composer)

Respondí que no, acabo de aprender

El entrevistador dijo que su marco es un marco de desarrollo secundario basado en Discuz, y basado en su excelente base, la gestión de la dependencia del compositor también se ha introducido en blabla.

3, habla sobre la comprensión de MVC

Combine la plantilla de descripción del proyecto, la vista, la relación del controlador y la composición básica

Cuatro. Protección

1, ataque de secuencias de comandos entre sitios XSS

2, ataque de tráfico DDOS

3. Ataque de falsificación de solicitud entre sitios CSRF

4, inyección SQL

Controlar o restringir la entrada del usuario en formularios de front-end

Filtrar al pasar parámetros y datos en el backend, etc.

Proyecto V.

1, Cómo resolver el problema de concurrencia en el proyecto.

Mi solución es controlar primero las solicitudes válidas en el front-end, como una solicitud normal una vez por minuto.
Luego, el back-end también considera las solicitudes no válidas y luego coloca la operación en la cola para su implementación.

Un entrevistador preguntó, ¿está tu cola bloqueada? Si dos usuarios compran al mismo tiempo y dos usuarios esperan para completar, todavía usan el mismo hilo para completar. ¿Has considerado usar otros métodos para lograrlo
? Dije que no, él simplemente Dijo que puede usar el mecanismo de bloqueo, el segundo espera a que se complete el primero, uno por uno

2, el proceso de implementación específico del pago WeChat

1) La página H5 inicia una solicitud de pago y solicita generar una orden de pago.
2) Llame a la API de pedido unificado para generar un pedido prepago.
3) Genere y firme los parámetros de pago llamados por la página JSAPI.
4) El navegador WeChat invoca automáticamente la interfaz JSAPI de pago para pagar.
5) Confirmar pago
6) Notificar de forma asincrónica al comerciante sobre el resultado del pago, y el comerciante recibe la notificación y la información de confirmación de devolución
7) Devuelve el resultado del pago y muestra la información del pago al usuario

3. Realización sencilla de la función de inicio de sesión y registro

Cada marco considera diferentes aspectos, así que simplemente escriba el código correspondiente según su propio entendimiento

4. Cómo diseñar un centro comercial

Primero me definí como un centro comercial B2C, y luego comencé desde la hoja de datos, y luego presenté brevemente la lógica de implementación de front-end y back-end

MYSQL

La optimización de mysql es básicamente la máxima prioridad, especialmente la tecnología de prueba

1. Básico

1, ¿Cuál es la diferencia entre InnoDB y MyISAM?

InnoDB proporciona procesamiento de transacciones, bloqueos a nivel de fila, admite claves externas y admite varios formatos de fila.
MyISAM solo admite bloqueos a nivel de tabla, índices de texto completo y tablas de montón.

2, ¿Cuáles son las características de la transacción?

Atomicidad, consistencia, aislamiento, durabilidad.

3, el nivel de aislamiento de la transacción

Lectura no confirmada, lectura enviada, lectura repetible, serializable

4. Hay un campo de tabla de O_Id, OrderDate, OrderPrice, Customer. Queremos encontrar clientes cuyo monto total del pedido sea inferior a 2000

    SELECT Customer,SUM(OrderPrice) FROM

Orders

    GROUP BY Customer

    HAVING SUM(OrderPrice)<2000

5. Consultar los datos en la tabla de alumnos, si es mayor a 60, es un pase, de lo contrario falla

select 分数,类别=Case
WHEN 分数 >=60 THEN '及格'
ELSE '不及格 '
END
from 成绩表

6, consulta la identificación del estudiante y el nombre de los estudiantes que no han completado todos los cursos

SELECT a.SNO ,a.SNAME 

FROM student a 

WHERE a.`SNO` NOT IN 

    ( SELECT b.`SNO` FROM SC b 

    GROUP BY b.`SNO` HAVING COUNT(*) = 

        ( SELECT COUNT(*)  FROM course)

    );

2. Optimización

1, “seleccione * del estudiante donde nombre = 'rojo'”, “seleccione * del estudiante donde nombre = 'azul'” , 优化 语句

    select name from student where

name='red'
    union
    select

name from student where name='blue'

Si usa la condición o, la tabla myisam puede usar el índice, pero innodb no.
Innodb reemplaza OR con UNION (para columnas indexadas)

2, ¿Cómo optimizas generalmente la base de datos?

Caché de consultas, EXPLICAR, índice (conjunto), usar una tabla estática de longitud fija

servidor

1. Protección

Cómo proteger el servidor

Solo abra puertos limitados, restrinja la IP de inicio de sesión, restrinja las cuentas de inicio de sesión

También es una pregunta para un libro, que se puede responder según el proyecto.

2. Acuerdo

¿Cuál es la diferencia entre Get y Post?

Los parámetros de obtención se incluyen en la URL y el navegador almacenará activamente en caché las solicitudes de GET. Está codificado en URL y existen restricciones de caracteres. Los parámetros son caracteres ASCII.

La publicación pasa los parámetros a través del cuerpo de la solicitud y hay varios métodos de codificación

3. NginX

¿Cuál es el proceso de solicitud de script php al configurar nginx?

La configuración predeterminada es reenviar al procesamiento FastCGI

4. Redis

1. ¿Qué datos usas redis para almacenar en caché?

Según el proyecto, algunos datos de uso frecuente que guardé en caché

2. ¿Cómo hace Redis la persistencia y qué frecuencia de actualización configurar?

Configure la persistencia AOF, actualice el archivo AOF cada segundo de forma predeterminada

3. ¿Redis tiene varios subprocesos?

Un solo hilo (en realidad respondí de varios hilos, 233)

4. ¿Cómo configura Redis un maestro y varios esclavos, y cuánto tiempo lleva?

Puede utilizar la solución de clúster oficial de Redis, que no se ha practicado, y puede llevar varias semanas completar

V. Gestión de códigos

¿Has usado git? Cuando dos personas envían el código incorrecto, cómo solucionarlo

He usado git para enviar el código. Si esto sucede, primero puede git extraer el código remoto al local, luego modificar el código en conflicto o el contenido de la marca Git correctamente y luego volver a enviar el código

otro

1. Por qué irse

Respondió ingeniosamente y mencionó un poco sobre la empresa o sobre sí misma.

2. Tu equipo ideal

Pasión por la tecnología, resolver problemas activamente y cooperar juntos

3. Planificación de carrera

Front-end en profundidad, back-end en profundidad, recopilación de análisis de optimización de datos, penetración del servidor blabla

4. Preguntas para hacer

Suele preguntar a la empresa qué proyectos, estructura técnica, rentabilidad, etc.

Las pilas de tecnología de diferentes empresas son diferentes, y los puntos de preocupación también son diferentes. Hasta cierto punto, preguntarán sobre la solución de bloqueo específica en el problema de la cola. Algunos prestarán más atención a la eficiencia del proyecto y algunos también prestarán atención a la construcción del servidor. Con una comprensión de los marcos populares, es posible que pueda encontrar la dirección de desarrollo que desea en el proceso

posdata

9 7 ofertas en 5 días, me siento bien. Durante la entrevista, la mayoría de las empresas harán preguntas detalladas basadas en los elementos del currículum. Durante la entrevista, puede ver la amplitud de la tecnología (cuántos proyectos o habilidades se han experimentado) y la profundidad de la tecnología (optimización de datos, Marco que comprende la producción, el ataque al servidor y la penetración de la defensa), espero que todos puedan continuar practicando y aprendiendo tecnología a medida que se desarrolla el proyecto. (• ㅂ •) / ♥ animarnos ~

Presta atención, no te pierdas

Muy bien, todos, lo anterior es todo el contenido de este artículo. Las personas que pueden ver aquí son todos talentos . Como dije antes, hay muchos puntos técnicos en PHP, porque hay demasiados, es realmente imposible de escribir, y no leerás demasiado después de escribirlo, así que lo organizaré en PDF y documentos aquí, si es necesario. Poder

Haga clic para ingresar el código secreto: PHP + 「Plataforma」

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí


Para obtener más contenido de aprendizaje, puede visitar el Catálogo [Comparative Standard Factory] de excelentes tutoriales de arquitecto PHP, siempre que pueda leerlo para asegurarse de que el salario aumentará un paso (actualización continua)

Supongo que te gusta

Origin blog.csdn.net/weixin_49163826/article/details/108681449
Recomendado
Clasificación