Maison >titres >Questions et réponses d'entretien PHP mises à jour le 3 juin 2018

Questions et réponses d'entretien PHP mises à jour le 3 juin 2018

PHP中文网
PHP中文网original
2018-06-04 20:20:206963parcourir

Questions et réponses d'entretien PHP mises à jour le 3 juin 2018, comprenant la partie de base PHP, la partie base de données, la partie orientée objet, la partie ThinkPHP, le moteur de modèles intelligents, le système de développement secondaire (DEDE, ecshop), le développement de plateforme publique WeChat, Certains Questions d'entretien PHP comprenant une description de la technologie que vous maîtrisez.

1. L'un des avantages majeurs du langage PHP est le multiplateforme.

La combinaison optimale de l'environnement d'exécution de PHP est Apache+MySQL+PHP. Cet environnement d'exécution peut être configuré sur différents systèmes d'exploitation (tels que Windows, Linux, etc.) et n'est donc pas limité par le système d'exploitation. cela s'appelle multiplateforme

2. Combien existe-t-il de méthodes de soumission de données dans le développement WEB ? Quelle est la différence ? Quelle méthode Baidu utilise-t-il ?

Deux méthodes de Get et post
Différences :
1 Get obtient les données du serveur et post transmet les données au serveur
2. La valeur transmise par Get est visible dans le fichier. url, et post est dans l'url Invisible
3. La valeur transmise par Get est généralement inférieure à 2 Ko, et la valeur transmise par post peut être définie dans php.ini
4. mais la sécurité de post est plus élevée, mais l'efficacité d'exécution est supérieure à celle de Post
Recommandations :
1. La méthode Get est moins sécurisée que la méthode Post, si elle contient des informations confidentielles. utilisez la méthode de soumission de données Post ;
2. Il est recommandé d'utiliser la méthode Get pour la requête de données ; pour ajouter, modifier ou supprimer des données,
La méthode get utilisée par Baidu. , car il peut être vu à partir de son URL

Téléchargement du disque réseau de la banque de questions d'entretien PHP

Banque de questions d'entretien PHP Téléchargement du disque en ligne

Télécharger l'intégralité banque de questions : résumé des questions d'entretien PHP téléchargement du disque en ligne

3. Maîtrisez quels frameworks, moteurs de modèles, systèmes, etc. de PHP

Framework : Le framework a Il en existe de nombreux, comme zendframe, CI, Yii, etc. Ce que nous avons appris, c'est le moteur de modèles thinkphp
: il y en a aussi beaucoup, qui sont dans les manuels. Ce que nous avons appris, c'est le système smarty
: il y en a beaucoup, comme : Les produits de Kangsheng (. uchome, supesite, discuzX, etc.), Empire System, DEDE (Dreamweaver), ecshop, etc. Ce que nous avons appris, c'est DEDECMS, Ecshop

4. Quelles sont les technologies web front-end que vous maîtrisez ?

Maîtrise de la mise en page Web DIV+CSS, JavaScript, du framework jQuery, du traitement d'images Photoshop

5 Quels sont les avantages d'AJAX ?

ajax est une technologie de transmission asynchrone qui peut être implémentée via javascript ou le framework JQuery pour obtenir un rafraîchissement partiel, ce qui réduit la pression sur le serveur et améliore l'expérience utilisateur

6. One-to -une sécurité C'est très important pour un ensemble de programmes. Veuillez me dire à quels mécanismes de sécurité il faut prêter attention pendant le développement ?

①Empêcher la soumission à distance ; ②Empêcher l'injection SQL et filtrer les codes spéciaux ; ③Empêcher l'inondation de la machine d'enregistrement et utiliser des codes de vérification ;

7. Dans le développement du programme, comment améliorer les performances du programme. Efficacité opérationnelle ?

① Optimisez les instructions SQL, essayez de ne pas utiliser select * dans les instructions de requête, utilisez quel champ pour vérifier quel champ ; utilisez moins de sous-requêtes et pouvez être remplacé par des connexions de table ; ② Créez des index dans les données ; tables ; ③ Droit Générer un cache pour les données fréquemment utilisées dans le programme ;

8. PHP peut-il être utilisé avec d'autres bases de données ?

PHP est la meilleure combinaison avec la base de données MYSQL. Bien entendu, PHP peut également être utilisé avec d'autres bases de données, telles que MSSQL, etc. PHP a réservé des fonctions pour faire fonctionner MSSQL, qui peuvent être utilisées tant qu'elles le sont. activé


9 De nos jours, la structure à trois couches MVC est souvent adoptée dans la programmation. Quels sont les trois couches de MVC ?

Les trois couches de MVC font respectivement référence au modèle commercial, à la vue et au contrôleur. La couche contrôleur appelle le modèle pour traiter les données, puis mappe les données sur la couche de vue pour l'affichage. ① Il peut permettre la réutilisation du code, éviter la redondance du code ; ②M et V implémentent la séparation du code, afin que le même programme puisse utiliser différentes expressions

10. Compréhension du format de données json ?

JSON (JavaScript Object Notation) est un format d'échange de données léger. Le format de données json est fixe et peut être utilisé pour le transfert de données dans plusieurs langages
La fonction en PHP qui traite le format json est json_decode (. string $json [, bool $assoc]), accepte une chaîne au format JSON et la convertit en variable PHP. Le paramètre json est la chaîne au format chaîne json à décoder. assoc renverra un tableau au lieu d'un objet lorsque ce paramètre est TRUE ;
Json_encode : Convertir les variables PHP au format json

11. Quelle est la différence entre Print, echo et print_r ?

① echo et print peuvent tous deux effectuer une sortie. La différence est que echo n'est pas une fonction et n'a pas de valeur de retour, tandis que print est une fonction avec une valeur de retour, donc relativement parlant, il sera plus rapide de simplement output echo, while print_r Habituellement utilisé pour imprimer des informations sur les variables, souvent utilisé dans le débogage.
② print consiste à imprimer une chaîne
③ print_r consiste à imprimer un type composite tel qu'un objet tableau

12. Quelle est la différence entre SESSION et COOKIE ?

①Emplacement de stockage : la session est stockée sur le serveur, le cookie est stocké dans le navigateur
②Sécurité : la sécurité de la session est supérieure à celle du cookie
③la session est un « service de session » et le service doit être activé lors de son utilisation. Les cookies n'ont pas besoin d'être activés, vous pouvez directement utiliser

13. Quelles sont les fonctions courantes pour le traitement des tableaux en PHP ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)

①array() crée un tableau ; ②count() renvoie le nombre d'éléments dans le tableau ; ③array_push() insère un ou plusieurs éléments dans la fin du tableau ( Pousser sur la pile) ; ④array_column() renvoie la valeur d'une seule colonne dans le tableau d'entrée ; ⑤array_combine() crée un nouveau tableau en fusionnant deux tableaux ; ⑥array_reverse() renvoie le tableau dans l'ordre inverse ; () supprime les doublons dans la valeur du tableau ; ⑧in_array() vérifie si la valeur spécifiée existe dans le tableau

14. (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)

①trim() supprime les caractères vides et autres caractères des deux côtés de la chaîne
②substr_replace() remplace une partie de la chaîne par ; une autre chaîne ;
③substr_count() compte le nombre de fois qu'une sous-chaîne apparaît dans la chaîne ;
④substr() renvoie une partie de la chaîne
⑤strtolower() convertit la chaîne en lettres minuscules ; > ⑥strtoupper() convertit la chaîne en lettres majuscules ;
⑦strtr() convertit des caractères spécifiques dans la chaîne ;
⑧strrchr() trouve la dernière occurrence d'une chaîne dans une autre chaîne ; occurrence d'une chaîne dans une autre chaîne (sensible à la casse) ; strrev() inverse la chaîne ; strlen() renvoie la longueur de la chaîne ; str_replace() remplace certains caractères dans la chaîne (pour la casse, print() génère un ou) ; more strings ; explosive() divise la chaîne en un tableau ; is_string() détecte si la variable est une chaîne ; strip_tags() supprime les balises HTML d'une chaîne ; mb_substr ()Fonction utilisée pour intercepter le chinois et l'anglais

15. Quelles sont les fonctions courantes utilisées pour traiter le temps en PHP ? (Focus sur les 'paramètres' et la 'valeur de retour' de la fonction)

date_default_timezone_get() renvoie le fuseau horaire par défaut.

date_default_timezone_set() définit le fuseau horaire par défaut.

date() formate l'heure/la date locale.
getdate() renvoie les informations de date/heure.
gettimeofday() renvoie les informations sur l'heure actuelle.
microtime() renvoie le nombre de microsecondes dans l'heure actuelle.
mktime() renvoie l'horodatage Unix d'une date.
strtotime() analyse toute description de date ou d'heure de texte anglais dans un horodatage Unix.
time() renvoie l'horodatage Unix de l'heure actuelle.

16. Quelles sont les fonctions courantes de PHP pour le traitement des bases de données ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)

Veuillez vous référer au manuel PHP et lisez-le attentivement. Cet élément est très important

Quels sont les points communs. des fonctions permettant à PHP d'exploiter des fichiers ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)

①Ouvrez le fichier ; ②Supprimez le fichier ; ④Écrivez le fichier ; ⑤Modifiez le fichier ; ⑥Fermez le fichier ; . etc. Cet élément est très important. Il est souvent utilisé pour générer du cache ou des fichiers statiques au travail. Veuillez vous référer au manuel PHP et lire attentivement

18. Quelles sont les fonctions courantes des répertoires d'exploitation PHP (dossiers). ) ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)

①Ouvrez le répertoire ; ②Supprimez le répertoire ; ④Créez le répertoire ; ⑤Modifiez le répertoire ; est très important, au travail, vous créez ou supprimez souvent des répertoires pour les fichiers téléchargés, et créez ou supprimez des répertoires pour les caches et les pages statiques. Veuillez vous référer au manuel PHP et le lire attentivement

2 : Partie base de données

Retour Haut

1. Quels sont les produits courants du système de gestion de bases de données relationnelles ?

Réponse : Oracle, SQL Server, MySQL, Sybase, DB2, Access, etc.

2. Quelles parties le langage SQL comprend-il ? Quels sont les mots-clés d’action pour chaque section ?

Réponse : Le langage SQL comprend quatre parties : la définition des données (DDL), la manipulation des données (DML), le contrôle des données (DCL) et la requête de données (DQL).

Définition des données : créer une table, modifier une table, supprimer une table, créer un index, etc.

Manipulation des données : sélectionner, insérer, mettre à jour, supprimer,

Contrôle des données : accorder, révoquer
Requête de données : select

3. Que comprennent les contraintes d'intégrité ?

Réponse : L'intégrité des données fait référence à l'exactitude et à la fiabilité des données.

est divisé en quatre catégories suivantes :

1) Intégrité de l'entité : Elle stipule que chaque ligne du tableau est une entité unique dans le tableau.

2) Intégrité du domaine : cela signifie que les colonnes du tableau doivent répondre à certaines contraintes de type de données, qui incluent la plage de valeurs, la précision et d'autres réglementations.
3) Intégrité référentielle : signifie que les données de la clé primaire et de la clé étrangère des deux tables doivent être cohérentes, garantissant la cohérence des données entre les tables et empêchant la perte de données ou les données dénuées de sens dans la diffusion de la base de données.
4) Intégrité définie par l'utilisateur : différents systèmes de bases de données relationnelles nécessitent souvent des contraintes particulières en fonction de leurs environnements d'application. L'intégrité définie par l'utilisateur est une contrainte pour une base de données relationnelle spécifique, qui reflète les exigences sémantiques auxquelles une application spécifique doit répondre.
Contraintes liées aux tables : y compris les contraintes de colonnes (NOT NULL (contrainte non nulle)) et les contraintes de table (PRIMARY KEY, clé étrangère, vérification, UNIQUE).

4. Qu'est-ce qu'une transaction ? et ses caractéristiques ?

Réponse : Transaction : Il s'agit d'une série d'opérations de base de données et de l'unité logique de base de l'application de base de données.
Caractéristiques des transactions :
(1) Atomicité : c'est-à-dire indivisibilité. Soit toutes les transactions sont exécutées, soit aucune n'est exécutée.
(2) Cohérence ou cordabilité. L'exécution d'une transaction convertit la base de données d'un état correct à un autre état correct
(3) Isolement. Avant que la transaction ne soit correctement validée, toute modification apportée aux données par la transaction ne peut être transmise à aucune autre transaction,
(4) Durabilité. Une fois qu'une transaction est soumise correctement, ses résultats seront enregistrés de manière permanente dans la base de données. Même s'il y a d'autres échecs après la soumission de la transaction, les résultats du traitement de la transaction seront enregistrés.
Ou comprenez-le de cette façon :
Une transaction est un groupe d'instructions SQL liées entre elles en tant qu'unité de travail logique. Si une opération d'instruction échoue, l'opération entière échouera et les opérations futures seront annulées. à l'état avant l'opération, ou il y a un nœud dessus. Pour garantir que quelque chose est exécuté ou non, des transactions peuvent être utilisées. Pour qu’une instruction groupée soit considérée comme une transaction, elle doit réussir les tests ACID, à savoir l’atomicité, la cohérence, l’isolement et la durabilité.

5. Qu'est-ce qu'un cadenas ?

Réponse : La base de données est une ressource partagée utilisée par plusieurs utilisateurs. Lorsque plusieurs utilisateurs accèdent simultanément aux données, plusieurs transactions accèdent simultanément aux mêmes données dans la base de données. Si les opérations simultanées ne sont pas contrôlées, des données incorrectes peuvent être lues et stockées, détruisant la cohérence de la base de données.
Le verrouillage est une technologie très importante pour contrôler la concurrence des bases de données. Avant qu'une transaction n'agisse sur un objet de données, elle envoie d'abord une demande au système pour le verrouiller. Après le verrouillage, la transaction a un certain contrôle sur l'objet de données. Avant que la transaction ne libère le verrou, les autres transactions ne peuvent pas mettre à jour l'objet de données.
Types de verrous de base : les verrous incluent les verrous au niveau des lignes et les verrous au niveau des tables

6. Qu'est-ce qu'une vue ? Qu'est-ce qu'un curseur ?

Réponse : Une vue est une table virtuelle qui a les mêmes fonctions qu'une table physique. Les vues peuvent être ajoutées, modifiées, vérifiées et exploitées. Une vue est généralement un sous-ensemble de lignes ou de colonnes d'une ou de plusieurs tables. Les modifications apportées à la vue n'affectent pas les tables sous-jacentes. Cela nous permet d'obtenir plus facilement des données que les requêtes multi-tables.
Curseur : il traite efficacement l'ensemble des résultats de la requête comme une unité. Le curseur peut être positionné sur une ligne spécifique de la cellule pour récupérer une ou plusieurs lignes de la ligne actuelle dans le jeu de résultats. Vous pouvez apporter des modifications à la ligne actuelle du jeu de résultats. Les curseurs ne sont généralement pas utilisés, mais lorsque les données doivent être traitées une par une, les curseurs sont très importants.

7. Qu'est-ce qu'une procédure stockée ? Comment appeler ?

Réponse : Une procédure stockée est une instruction SQL précompilée. L'avantage est qu'elle permet une conception modulaire, ce qui signifie qu'elle ne doit être créée qu'une seule fois et peut être appelée plusieurs fois dans le programme ultérieurement. Si une certaine opération nécessite plusieurs exécutions de SQL, l'utilisation de procédures stockées est plus rapide que l'exécution de simples instructions SQL. Les procédures stockées peuvent être appelées à l'aide d'un objet de commande.

8. Quel est le rôle de l'index ? Et quels sont ses avantages et ses inconvénients ?

Réponse : Un index est une table de requête spéciale que le moteur de recherche de base de données peut utiliser pour accélérer la récupération des données. C'est très similaire à la table des matières d'un livre dans la vraie vie. Vous pouvez trouver les données souhaitées sans interroger l'intégralité du livre. Les index peuvent être uniques. La création d'un index vous permet de spécifier une seule ou plusieurs colonnes. L’inconvénient est que cela ralentit la saisie des données et augmente la taille de la base de données.

9. Comment comprendre les trois paradigmes de manière populaire ?

Réponse : Première forme normale : 1NF est une contrainte d'atomicité sur les attributs, qui nécessite que les attributs soient atomiques et ne peuvent pas être décomposés.
Deuxième forme normale : 2NF est une contrainte d'unicité sur les enregistrements, qui nécessite que les enregistrements soient ; avoir une identification unique, c'est-à-dire l'unicité de l'entité ; Troisième forme normale : 3NF est une contrainte sur la redondance des champs, c'est-à-dire qu'aucun champ ne peut être dérivé d'autres champs et nécessite que les champs ne soient pas redondants. .

10. Qu'est-ce qu'un tableau de base ? Qu'est-ce qu'une vue ?

Réponse : La table de base est une table qui existe indépendamment En SQL, une relation correspond à une table. Une vue est une table dérivée d'une ou plusieurs tables de base. La vue elle-même n'est pas stockée indépendamment dans la base de données, mais est une table virtuelle

11. Décrivez les avantages des vues ?

Réponse : (1) Les vues peuvent simplifier les opérations des utilisateurs (2) Les vues permettent aux utilisateurs de visualiser les mêmes données sous plusieurs perspectives (3) Les vues offrent un certain degré d'indépendance logique pour la base de données ; assurer la protection de la sécurité des données confidentielles.

12. Que signifie NULL ?

Réponse : La valeur NULL représente INCONNU (inconnu) : elle ne représente pas "" (chaîne vide). Toute comparaison avec une valeur NULL produira une valeur NULL. Vous ne pouvez comparer aucune valeur à une valeur NULL et vous attendre logiquement à obtenir une réponse.
Utilisez IS NULL pour le jugement NULL

13. Quelle est la différence entre la clé primaire, la clé étrangère et l'index ?

La différence entre la clé primaire, la clé étrangère et l'index
Définition :
Clé primaire - identifie de manière unique un enregistrement, ne peut pas être dupliquée et ne peut pas être vide
Clé étrangère - la clé étrangère de la table est une autre La clé primaire et la clé étrangère de la table peuvent avoir des doublons ou des valeurs nulles
Index - ce champ n'a pas de valeurs en double, mais peut avoir une valeur nulle
Fonction :
Clé primaire - utilisée. pour garantir l'intégrité des données
Clé étrangère -
index utilisé pour établir des connexions avec d'autres tables - pour améliorer la vitesse de tri des requêtes
Numéro :
clé primaire - il ne peut y avoir qu'une seule clé primaire
clé étrangère --Une table peut avoir plusieurs index de clé étrangère
-- Une table peut avoir plusieurs index uniques

14. Que pouvez-vous utiliser pour vous assurer que les champs de la table n'acceptent que des valeurs dans une plage spécifique ?

Réponse : Vérifiez la restriction, qui est définie dans la table de la base de données et est utilisée pour limiter la valeur saisie dans cette colonne.
Les déclencheurs peuvent également être utilisés pour limiter les valeurs que les champs des tables de base de données peuvent accepter, mais cette méthode nécessite que des déclencheurs soient définis dans la table, ce qui peut affecter les performances dans certains cas.

15. Quelles sont les méthodes pour optimiser les instructions SQL ? (Choisissez-en quelques-uns)

(1) Dans la clause Where : la connexion entre les tables Where doit être écrite avant les autres conditions Where et les conditions qui peuvent filtrer le nombre maximum d'enregistrements doivent être écrites à la fin de la clause Where .HAVING en dernier.
(2) Remplacez IN par EXISTS et NOT IN par NOT EXISTS.
(3) Évitez d'utiliser des calculs sur les colonnes d'index
(4) Évitez d'utiliser IS NULL et IS NOT NULL sur les colonnes d'index
(5) Pour optimiser les requêtes, les analyses de table complètes doivent être évitées autant que possible. Tout d’abord, il convient d’envisager la création d’index sur les colonnes impliquées dans Where et Order By.
(6) Vous devriez essayer d'éviter de porter des jugements de valeur nulle sur les champs de la clause Where, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète de la table
(7) Essayez d'éviter de créer une valeur nulle. jugements sur les champs de la clause Where. Opération d'expression, ce qui amènera le moteur à abandonner l'utilisation de l'index et à effectuer une analyse complète de la table

16. Quelle est la différence entre « sous-requête corrélée » et « non corrélée » sous-requête' dans les instructions SQL ?

Réponse : Sous-requête : Une requête imbriquée dans d'autres requêtes est appelée une requête.
Une sous-requête est également appelée requête interne, et l'instruction contenant la sous-requête est appelée requête externe (également appelée requête principale).
Toutes les sous-requêtes peuvent être divisées en deux catégories, à savoir les sous-requêtes corrélées et les sous-requêtes non corrélées
(1) Les sous-requêtes non corrélées sont des sous-requêtes indépendantes des requêtes externes. Les sous-requêtes sont exécutées une fois au total. valeur à la requête externe.
(2) L'exécution de la sous-requête concernée dépend des données de la requête externe. Lorsque la requête externe exécute une ligne, la sous-requête est exécutée une fois.
Par conséquent, les sous-requêtes non corrélées sont plus efficaces que les sous-requêtes corrélées

17 Quelle est la différence entre char et varchar ?

Réponse : Il s'agit d'un type de longueur fixe et varchar est un type de longueur variable. La différence entre eux est :
Dans la colonne de données de type char(M), chaque valeur occupe M octets. . Si une certaine longueur est inférieure à M, MySQL la remplira avec des espaces à droite. (Les espaces de remplissage seront supprimés lors de l'opération de recherche.) Dans une colonne de données de type varchar(M), chaque valeur n'occupe que juste assez d'octets plus un octet pour enregistrer sa longueur (c'est-à-dire que la longueur totale est L+1 octets ).

18. Moteur de stockage Mysql, la différence entre myisam et innodb.

Réponse : expression simple :
MyISAM est un moteur de stockage non transactionnel ; adapté aux applications avec des requêtes fréquentes ; moteur qui prend en charge les transactions ; adapté aux applications avec de nombreuses opérations d'insertion et de mise à jour ; verrous de lignes s'ils sont conçus correctement (la plus grande différence réside dans le niveau de verrouillage adapté au Big Data et à la grande concurrence) ;

19. Quels sont les types de tables de données

Réponse : MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, etc.

MyISAM : mature, stable, facile à gérer, rapide à lire. Certaines fonctions ne prennent pas en charge (transactions, etc.) les verrous au niveau de la table.
InnoDB : prend en charge les transactions, les clés étrangères et d'autres fonctionnalités, ainsi que le verrouillage des lignes de données. Il prend beaucoup de place et ne prend pas en charge l'indexation en texte intégral, etc.

20. La base de données MySQL est utilisée comme stockage du système de publication. L'augmentation de plus de 50 000 éléments par jour est estimée à trois ans d'exploitation et de maintenance.

a. Concevez une structure de base de données bien conçue, autorisez une redondance partielle des données et essayez d'éviter les requêtes de jointure pour améliorer l'efficacité.

b. Sélectionnez le type de données de champ de table et le moteur de stockage appropriés, et ajoutez les index de manière appropriée.
c. Séparation maître-esclave de la bibliothèque MySQL en lecture et en écriture.
d. Recherchez des tables normales et réduisez la quantité de données dans une seule table pour améliorer la vitesse des requêtes.
e. Ajoutez un mécanisme de mise en cache, tel que memcached, apc, etc.
f. Pour les pages qui ne changent pas fréquemment, générez des pages statiques.
g. Écrivez du SQL efficace. Par exemple, SELECT * FROM TABEL est remplacé par SELECT field_1, field_2, field_3 FROM TABLE.

21. Pour les sites Web à fort trafic, quelle méthode utilisez-vous pour résoudre le problème des statistiques de visites de pages ?

Réponse :

a. Confirmez si le serveur peut prendre en charge le trafic actuel.
b. Optimiser l'accès à la base de données.
c. Interdire l'accès externe aux liens (hotlinking), comme le hotlinking d'images.
d. Contrôler les téléchargements de fichiers.
e. Utilisez différents hôtes pour répartir le trafic.
f. Utiliser un logiciel de statistiques de navigation pour comprendre le nombre de visites et réaliser une optimisation ciblée.

3 : Partie orientée objet

Retour en haut

1. Qu'est-ce que l'orientation objet (réponse avec compréhension)

Réponse : OO orienté objet = Analyse orientée objet OOA + Conception orientée objet OOD + Programmation orientée objet OOP ; l'explication populaire est que « tout est un objet » et que toutes choses sont considérées comme des objets indépendants. unité), ils peuvent remplir leurs propres fonctions au lieu d'être divisés en fonctions comme C.

Les langages OO purs actuels sont principalement Java et C# et C++ supportent également OO qui est orienté processus.

2. Décrivez brièvement les droits d'accès des modificateurs privés, protégés et publics.

Réponse : privé : membres privés, accessibles uniquement à l'intérieur de la classe.

protected : membres protégés, accessibles au sein de la classe et des classes héritées.

public : membres publics, entièrement publics, aucune restriction d'accès.

3. Quelle est la différence entre tas et pile ?

Réponse : La pile est un espace mémoire alloué lors de la compilation, la taille de la pile doit donc être clairement définie dans votre code

Le tas est un espace mémoire alloué dynamiquement lors de l'exécution du programme ; , vous pouvez déterminer la taille de la mémoire tas à allouer en fonction des conditions d'exécution du programme.

4. La principale différence entre XML et HTML

Réponse : (1) XML fait la distinction entre les lettres majuscules et minuscules, contrairement au HTML.
(2) En HTML, vous pouvez omettre les balises de fermeture telles que
ou
si le contexte montre clairement où se termine la clé de paragraphe ou de liste. En XML, la balise fermante ne doit pas être omise.
(3) En XML, les éléments qui ont une seule balise sans balise de fermeture correspondante doivent se terminer par un caractère /. De cette façon, l'analyseur sait qu'il ne doit pas rechercher la balise de fermeture.
(4) En XML, les valeurs d'attribut doivent être placées entre guillemets. En HTML, les guillemets sont facultatifs.
(5) En HTML, vous pouvez avoir des noms d'attributs sans valeurs. En XML, tous les attributs doivent avoir des valeurs correspondantes.

5. Quelles sont les caractéristiques de l'orientation objet

Réponse : Inclut principalement l'encapsulation, l'héritage et le polymorphisme. S'il s'agit de 4 aspects, ajoutez : abstraction.
L'explication suivante est pour la compréhension :
Encapsulation :
L'encapsulation est la base pour garantir que les composants logiciels ont une excellente modularité. L'objectif de l'encapsulation est d'obtenir une cohésion élevée et un faible couplage des composants logiciels et d'éviter l'interdépendance des programmes. . L'impact des changements apportés par la nature.
Héritage :
Lors de la définition et de l'implémentation d'une classe, vous pouvez le faire sur la base d'une classe existante, et utiliser le contenu défini par cette classe existante comme votre propre contenu. , et vous pouvez ajouter du nouveau contenu ou modifier la méthode d'origine pour la rendre plus adaptée à des besoins particuliers. Il s'agit d'un héritage. L'héritage est un mécanisme permettant aux sous-classes de partager automatiquement les données et les méthodes de la classe parent. Il s'agit d'une relation entre les classes qui améliore la réutilisabilité et l'évolutivité du logiciel.
Polymorphisme :
Le polymorphisme signifie que le type spécifique pointé par la variable de référence définie dans le programme et les appels de méthode émis via la variable de référence ne sont pas déterminés lors de la programmation, mais sont déterminés lors de l'exécution du programme, c'est-à-dire est L'objet d'instance de classe vers lequel pointe une variable de référence et la classe qui implémente l'appel de méthode émis par la variable de référence doivent être déterminés lors de l'exécution du programme.
Abstraction :
L'abstraction consiste à découvrir les similitudes et les points communs de certaines choses, puis à classer ces choses dans une classe. Ce cours ne considère que les similitudes et les points communs de ces choses, et ignore le sujet actuel et ces aspects. qui ne sont pas pertinents par rapport à l’objectif, concentrez-vous sur les aspects qui sont pertinents par rapport à l’objectif actuel. Par exemple, si vous voyez une fourmi et un éléphant et que vous pouvez imaginer à quel point ils se ressemblent, c’est de l’abstraction.

6. Quels sont les concepts et les différences entre les classes abstraites et les interfaces ?

Réponse : Classe abstraite : Il s'agit d'une classe spéciale qui ne peut pas être instanciée et ne peut être utilisée que comme classe parent d'autres classes. Déclaré à l'aide du mot-clé abstract.
C'est une classe abstraite spéciale et une classe spéciale qui utilise la déclaration d'interface.
(1) Les opérations des classes abstraites sont implémentées via le mot-clé d'héritage extends, et l'utilisation des interfaces est implémentée via le mot-clé Implements.
(2) Il existe des données membres dans des classes abstraites, qui peuvent réaliser l'encapsulation de données, mais les interfaces n'ont pas de données membres.
(3) Les classes abstraites peuvent avoir des constructeurs, mais les interfaces n'ont pas de constructeurs.
(4) Les méthodes des classes abstraites peuvent être modifiées avec les mots-clés private, protected et public (les méthodes abstraites ne peuvent pas être privées), tandis que les méthodes des interfaces ne peuvent être modifiées qu'avec le mot-clé public.
(5) Une classe ne peut hériter que d'une seule classe abstraite, et une classe peut implémenter plusieurs interfaces en même temps.
(6) Une classe abstraite peut avoir un code d'implémentation pour les méthodes membres, mais une interface ne peut pas avoir de code d'implémentation pour les méthodes membres.

7. Qu'est-ce qu'un constructeur, qu'est-ce qu'un destructeur et quelle est sa fonction ?

Réponse : Le constructeur (méthode) est la première méthode automatiquement appelée par l'objet après la création de l'objet. Il existe dans chaque classe déclarée et constitue une méthode membre spéciale. Sa fonction est d'effectuer certaines tâches d'initialisation. En Php, __construct() est utilisé pour déclarer la méthode constructeur, et une seule peut être déclarée.
Le destructeur (méthode) a l'effet inverse du constructeur. C'est la dernière méthode automatiquement appelée par l'objet avant sa destruction. Il s'agit d'un contenu nouvellement ajouté dans PHP5 qui est utilisé pour effectuer certaines opérations spécifiques avant de détruire un objet, comme la fermeture de fichiers et la libération de mémoire.

8. Comment surcharger les méthodes de la classe parent, avec des exemples

Réponse : La surcharge signifie remplacer la méthode de la classe parent, c'est-à-dire utiliser la méthode de la sous-classe pour remplacer la méthode héritée de la classe parent, également appelée réécriture de méthode.
La clé pour remplacer la méthode de la classe parent est de créer la même méthode dans la classe parent de la sous-classe, y compris le nom de la méthode, les paramètres et le type de valeur de retour. En PHP, seuls les noms des méthodes doivent être identiques.

9. Quelles sont les méthodes magiques couramment utilisées ? Exemple

Réponse : PHP stipule que les méthodes commençant par deux traits de soulignement (__) sont réservées comme méthodes magiques, il est donc recommandé que le nom de votre fonction ne commence pas par __ sauf s'il s'agit de surcharger une méthode magique existante.
__construct() est automatiquement appelé lors de l'instanciation d'une classe.
__destruct() est automatiquement appelé lorsque l'objet de classe est utilisé.
__set() est appelé lors de l'attribution d'une valeur à une propriété non définie.
__get() est appelé lorsque des propriétés non définies sont appelées.
__isset() sera appelé lors de l'utilisation de la fonction isset() ou empty().
__unset() sera appelé lorsque unset() est utilisé.
__sleep() est appelé lors de la sérialisation à l'aide de Serialize.
__wakeup() est appelé lors de la désérialisation à l'aide de unserialize.
__call() est appelé lors de l'appel d'une méthode qui n'existe pas.
__callStatic() appelle une méthode statique qui n'existe pas.
__toString() est appelé lors de la conversion d'un objet en chaîne. Comme l'écho.
__invoke() est appelé lorsque vous essayez d'invoquer un objet en tant que méthode.
__set_state() est appelé lors de l'utilisation de la fonction var_export(). Accepte un paramètre de tableau.
__clone() est appelé lors de l'utilisation de clone pour copier un objet.

10. Que représentent respectivement les trois mots-clés $this et self et parent ? Dans quelles situations est-il utilisé ?

Réponse : $cet objet actuel
classe auto-actuelle
classe parent parent de la classe actuelle
$this est utilisé dans la classe actuelle, utilisez ->
Self est également utilisé dans la classe actuelle, mais il doit être appelé en utilisant ::.
parent est utilisé dans les cours.

11. Comment définir des constantes dans une classe, comment appeler des constantes dans une classe et comment appeler des constantes en dehors d'une classe.

Réponse : Les constantes de la classe sont également des constantes membres. Une constante est une quantité qui ne change pas et est une valeur constante.
Définissez les constantes à l'aide du mot-clé const.
Par exemple : const PI = 3.1415326;
Que ce soit à l'intérieur d'une classe ou à l'extérieur d'une classe, l'accès aux constantes est différent de celui des variables. pour instancier des objets,
Le format d'accès aux constantes est le nom de la classe plus le symbole de l'opération de portée (double deux-points) à appeler.
C'est-à-dire : nom de classe : nom de constante de classe ;

12. Comment utiliser l'opérateur de portée : ? Dans quelles situations est-il utilisé ?

Réponse : Appeler des constantes de classe
Appeler des méthodes statiques

13 Quel est le principe de fonctionnement de la méthode __autoload() ?

Réponse : La condition de base pour utiliser cette fonction magique est que le nom du fichier de classe doit être cohérent avec le nom de la classe.
Lorsque le programme est exécuté pour instancier une certaine classe, si le fichier de classe n'est pas introduit avant l'instanciation, la fonction __autoload() sera automatiquement exécutée.
Cette fonction recherchera le chemin du fichier de classe en fonction du nom de la classe instanciée. Lorsqu'il est déterminé que le fichier de classe existe dans le chemin du fichier de classe,
exécutez include ou require pour charger le fichier de classe. classe, puis le programme Continuer l'exécution. Si le fichier n'existe pas dans ce chemin, une erreur sera affichée.
L'utilisation de la fonction magique de chargement automatique élimine le besoin d'écrire de nombreuses fonctions include ou require.

Quatre : partie ThinkPHP

Retour en haut

1. Frameworks PHP courants

Réponse : thinkPHP, yii, ZendFramework, CakePhp, sy

.

2. Comment comprendre le fichier à entrée unique dans TP ?

Réponse : ThinkPHP adopte un mode d'entrée unique pour le déploiement et l'accès au projet. Quelle que soit la fonction exécutée, un projet a une entrée unifiée (mais pas nécessairement la seule). Il faut dire que tous les projets partent du fichier d'entrée, et les fichiers d'entrée de tous les projets sont similaires. Le fichier d'entrée comprend principalement :
définir le chemin du framework, le chemin du projet et le nom du projet (facultatif)
définir les constantes associées. pour le mode débogage et le mode exécution (facultatif)
Chargement du fichier d'entrée du framework (obligatoire)

3. Qu'est-ce que la superposition MVC dans ThinkPHP ? (Comprendre)

Réponse : MVC est une méthode de séparation de la couche logique et de la couche de présentation d'une application. ThinkPHP est également basé sur le modèle de conception MVC. MVC n'est qu'un concept abstrait sans réglementation particulièrement claire. La superposition MVC dans ThinkPHP se reflète grossièrement dans :
Modèle (M) : La définition du modèle est complétée par la classe Model.
Contrôleur (C) : le contrôleur d'application (classe d'application du contrôleur principal) et le contrôleur d'action assument tous deux le rôle de contrôleur. Le contrôleur d'action complète le contrôle des processus métier, tandis que le contrôleur d'application est responsable du contrôle de la planification.
View (V) : il est composé d'une classe View et d'un fichier modèle. Le modèle est 100 % séparé et peut être prévisualisé et produit indépendamment.
Mais en fait, ThinkPHP ne s'appuie pas sur M ou V, ce qui signifie qu'il peut fonctionner sans modèles ni vues. Il ne repose même pas sur C. En effet, ThinkPHP dispose également d'un contrôleur principal au-dessus d'Action, le contrôleur d'application, qui est responsable de la planification globale de l'application. En l’absence de C, la vue V doit exister, sinon ce n’est plus une application complète.
En bref, le modèle MVC de ThinkPHP fournit uniquement un moyen de développement agile, plutôt que de s'en tenir au MVC lui-même.

4. Comment optimiser SQL ? (Les étudiants peuvent comprendre l'explication suivante, puis simplement énoncer la signification générale en fonction de leur propre compréhension)

Réponse : (1) Choisissez le bon moteur de stockage
Prenons MySQL comme exemple, y compris Il y en a deux moteurs de stockage, MyISAM et InnoDB, et chaque moteur a des avantages et des inconvénients.
MyISAM convient à certaines applications qui nécessitent un grand nombre de requêtes, mais il n'est pas très bon pour un grand nombre d'opérations d'écriture. Même si vous avez juste besoin de mettre à jour un champ, la table entière sera verrouillée et les autres processus, même le processus de lecture, ne pourront pas fonctionner tant que l'opération de lecture n'est pas terminée. De plus, MyISAM est extrêmement rapide pour les calculs tels que SELECT COUNT(*).
La tendance d'InnoDB sera un moteur de stockage très complexe, et pour certaines petites applications, il sera plus lent que MyISAM. Mais il prend en charge le "verrouillage des lignes", ce sera donc mieux lorsqu'il y aura de nombreuses opérations d'écriture. De plus, il prend également en charge des applications plus avancées, telles que les transactions.
(2) Optimiser le type de données du champ
Rappelons un principe, plus la colonne est petite, plus elle sera rapide. Si une table ne comporte que quelques colonnes (comme une table de dictionnaire, une table de configuration), alors nous n'avons aucune raison d'utiliser INT comme clé primaire. Il sera plus économique d'utiliser MEDIUMINT, SMALLINT ou un TINYINT plus petit. Si vous n'avez pas besoin de suivre l'heure, il est préférable d'utiliser DATE plutôt que DATETIME. Bien entendu, vous devez également laisser suffisamment de place à l’expansion.
(3) Ajouter un index au champ de recherche
L'index ne signifie pas nécessairement la clé primaire ou le champ unique. S'il y a un champ dans votre table que vous utiliserez toujours pour la recherche, il est préférable de l'indexer. À moins que le champ que vous souhaitez rechercher soit un champ de texte volumineux, vous devez alors créer un index de texte intégral.
(4) Évitez d'utiliser Select *. Plus les données sont lues dans la base de données, plus la requête deviendra lente. De plus, si votre serveur de base de données et votre serveur WEB sont deux serveurs indépendants, cela augmentera également la charge de transmission réseau. Même si vous souhaitez interroger tous les champs de la table de données, essayez de ne pas utiliser le caractère générique *. Faire bon usage des définitions d'exclusion de champs intégrées peut apporter plus de commodité.
(5) Utilisez ENUM au lieu de VARCHAR
Le type ENUM est très rapide et compact. En fait, il contient un TINYINT, mais il apparaît sous la forme d'une chaîne. De cette façon, il devient tout à fait parfait d'utiliser ce champ pour faire des listes de choix. Par exemple, si les valeurs de champs tels que le sexe, l'origine ethnique, le département et le statut sont limitées et fixes, vous devez utiliser ENUM au lieu de VARCHAR.
(6) Utilisez NOT NULL autant que possible
Sauf si vous avez une raison très spécifique d'utiliser des valeurs NULL, vous devez toujours garder vos champs NOT NULL. NULL nécessite en fait un espace supplémentaire et votre programme sera plus complexe lorsque vous effectuerez des comparaisons. Bien sûr, cela ne signifie pas que vous ne pouvez pas utiliser NULL. La réalité est très compliquée et il y aura toujours des situations dans lesquelles vous devrez utiliser des valeurs NULL.
(7) Les tableaux de longueur fixe seront plus rapides
Si tous les champs du tableau sont de « longueur fixe », la table entière sera considérée comme « statique » ou « de longueur fixe ». Par exemple, la table ne contient aucun champ des types suivants : VARCHAR, TEXT, BLOB. Tant que vous incluez l'un de ces champs, la table n'est plus une "table statique de longueur fixe" et le moteur MySQL la traitera d'une autre manière.
Les tables de longueur fixe amélioreront les performances car MySQL recherchera plus rapidement. Parce que ces longueurs fixes facilitent le calcul du décalage des données suivantes, la lecture sera naturellement plus rapide. Et si le champ n'est pas de longueur fixe, chaque fois que vous souhaitez trouver le suivant, le programme doit trouver la clé primaire.
De plus, les tables de longueur fixe sont plus faciles à mettre en cache et à reconstruire. Cependant, le seul effet secondaire est que les champs de longueur fixe gaspillent de l'espace, car les champs de longueur fixe nécessitent beaucoup d'espace, que vous les utilisiez ou non.

5. Comment comprendre le comportement dans l'architecture ThinkPHP 3.0 trois (noyau + comportement + pilote) ?

Réponse : Core + Behaviour + Driver
L'abréviation officielle de TP est : CBD
Core : C'est le code de base du framework, une chose indispensable en soi est un framework développé sur la base de. l'idée MVC.
Comportement : le comportement joue un rôle décisif dans l'architecture de la nouvelle version de ThinkPHP. Au-dessus du cœur du système, il existe de nombreux bits d'extension de balise, et chaque position de balise peut exécuter son propre comportement indépendant à son tour. C'est ainsi que sont nées les extensions comportementales, et de nombreuses fonctions du système sont également complétées par des extensions comportementales intégrées. Toutes les extensions comportementales sont remplaçables et additives, constituant ainsi la base de l'assemblage du cadre sous-jacent.
Pilote : pilote de base de données, pilote de cache, pilote de bibliothèque de balises et pilote de moteur de modèles, ainsi que des extensions de classe externes.
Cadre. En fait, il s'agit d'un produit semi-fini d'une certaine application, d'un ensemble de composants que vous pouvez choisir et utiliser pour compléter votre propre système. Pour faire simple, vous utilisez le décor préparé par les autres et vous jouez. De plus, les frameworks sont généralement des logiciels matures et continuellement mis à jour.

6. Quelle est la configuration conventionnelle ?

Réponse : Configuration conventionnelle Page précédente Page suivante Les conventions sont plus importantes que les configurations. Il s'agit d'une idée importante que le système suit. Le système dispose d'un fichier de configuration de convention intégré (Confconvention.php situé sous le répertoire système). à la plupart des usages, couramment utilisés. Les paramètres sont configurés par défaut. Par conséquent, pour le fichier de configuration du projet d'application, il vous suffit souvent de configurer des paramètres de configuration différents ou nouveaux par rapport à la configuration conventionnelle. Si vous adoptez complètement la configuration par défaut, vous n'avez même pas besoin de définir de fichier de configuration.
Le fichier de configuration conventionnel sera automatiquement chargé par le système et n'a pas besoin d'être chargé dans le projet.

7. Qu'est-ce que l'injection SQL ? (Comprendre)

Réponse : L'attaque par injection SQL est l'un des moyens couramment utilisés par les pirates pour attaquer les bases de données. Certains programmeurs ne jugent pas la légalité des données saisies par l'utilisateur lors de l'écriture du code. L'injecteur peut saisir un code de requête de base de données dans le formulaire et le soumettre. Le programme rassemblera les informations soumises pour générer une instruction SQL complète, et le serveur le sera. trompé. Exécutez la commande SQL malveillante. L'injecteur obtient avec succès certaines données sensibles en fonction des résultats renvoyés par le programme et contrôle même l'ensemble du serveur. Il s'agit d'une injection SQL.

8. Comment ThinkPHP empêche-t-il l'injection SQL ? (Comprendre)

Réponse : (1) Essayez d'utiliser des tableaux pour les conditions de requête, ce qui est un moyen plus sûr
(2) Si les conditions de requête de chaîne doivent être utilisées en dernier recours, utilisez le mécanisme de prétraitement ; ;
(3) Activez la vérification du type de champ de données et vous pouvez forcer la conversion des types de données numériques (la vérification du type de champ est obligatoire depuis la version 3.1)
(4) Utilisez les mécanismes de vérification automatique et de complétion automatique pour effectuer vérification automatique pour les applications. Définir le filtrage ;
(5) Utiliser des mécanismes de vérification du type de champ, de vérification automatique et de complétion automatique pour éviter la saisie de données malveillantes.

9. Comment activer le mode débogage ? Quels sont les avantages du mode débogage ?

Réponse : Activer le mode débogage est très simple. Il vous suffit d'ajouter une ligne de code de définition constante au fichier d'entrée :

Activer le mode débogage

Après avoir terminé le développement Une fois l'étape déployée dans l'environnement de production, il vous suffit de supprimer le code de définition du mode débogage pour passer en mode déploiement. Une fois le mode de débogage activé, le système chargera d'abord le fichier de configuration de débogage par défaut du système, puis chargera le fichier de configuration de débogage du projet. Les avantages du mode de débogage sont les suivants : activez la journalisation et toutes les informations d'erreur et de débogage seront enregistrées dans. détail pour faciliter le débogage ; désactivez la mise en cache des modèles, les modifications des modèles peuvent prendre effet immédiatement ; enregistrez les journaux SQL pour faciliter l'analyse des champs ; les modifications des champs de la table de données ne sont pas affectées par la mise en cache, vérifiez strictement la casse des fichiers (même sur les plates-formes Windows) ; , vous aidant à découvrir à l'avance les problèmes de déploiement Linux ; peut être pratique Utilisé pour différentes étapes du processus de développement, y compris le développement, les tests et la démonstration, etc., les fichiers de configuration de projet indépendants peuvent être configurés pour différents modes d'application.

10. Quels modes de configuration sont pris en charge dans TP ? Priorité?

Réponse : ThinkPHP a créé son propre mode de configuration hiérarchique unique dans la configuration du projet. Son niveau de configuration se reflète dans : Configuration conventionnelle->Configuration du projet->Configuration du débogage->Configuration du groupe-> -> Configuration dynamique

Ce qui précède est l'ordre de chargement des fichiers de configuration. Parce que la configuration suivante écrasera la configuration précédente du même nom (si elle n'est pas efficace), la priorité est de droite à gauche.

11. Quels sont les modèles d'URL dans TP ? Quelle est la valeur par défaut ?

Réponse : ThinkPHP prend en charge quatre modes d'URL, qui peuvent être définis en définissant le paramètre URL_MODEL, notamment le mode normal, PATHINFO, REWRITE et le mode de compatibilité.

Le mode par défaut est : mode PATHINFO, définissez URL_MODEL sur 1

12 Quelles sont les variables système dans TP ? Comment obtenir les variables système ?

Réponse : Comment obtenir des variables système :

Appelez simplement la méthode suivante dans Action :
$this->Nom de la méthode("Nom de la variable",["Méthode de filtrage"],[ " Valeur par défaut"])

13. Quelle est la différence entre la fonction D et la fonction M dans le framework ThinkPHP ?

Réponse : La méthode M instancie le modèle sans que l'utilisateur définisse une classe de modèle pour chaque table de données. La méthode D peut détecter automatiquement la classe de modèle personnalisée. Si une classe de modèle personnalisée existe, la classe de modèle personnalisée sera instanciée. Si ce n'est pas le cas, la classe de modèle personnalisée sera instanciée, la méthode M sera automatiquement appelée pour instancier la classe de base Model. Dans le même temps, les modèles instanciés ne seront pas instanciés à plusieurs reprises (mode cas unique).

Cinq : moteur de modèles intelligent

Retour en haut

1. Quelle est la différence entre la compilation et la mise en cache ?

Le processus de compilation de smarty consiste à prendre le modèle et à remplacer les balises à l'intérieur par le code php correspondant. C'est la compilation de smarty. En fait, c'est le processus de mélange de php et de html. Le cache de Smarty doit être activé manuellement. Le cache de Smarty doit exécuter le fichier compilé et générer une page HTML statique en même temps. Lorsque vous y accéderez à nouveau, vous accéderez au fichier HTML, donc en termes d'efficacité, il est plus élevé.


2. Qu'est-ce que smarty ? Quels sont les avantages de Smarty ?

Smarty est un moteur de modèles PHP écrit en PHP. Le but est de séparer le programme PHP de l'artiste, de sorte que lorsque le programmeur modifie le contenu logique du programme, cela n'affecte pas la conception de la page de l'artiste, et lorsque le programmeur modifie le contenu logique du programme, cela n'affecte pas la conception de la page de l'artiste. L'artiste re-modifie la page, cela n'affectera pas la conception de la page. Cela affectera la logique du programme, ce qui est particulièrement important dans les projets de coopération multi-personnes. (Il est également facile de développer des programmes multi-styles)
Avantages de Smarty
1. Rapide : par rapport aux autres moteurs de modèles.
2. Type compilé : un programme écrit en smarty doit être compilé dans un fichier PHP sans technologie de modèle au moment de l'exécution.
3. Technologie de mise en cache : elle peut mettre en cache le fichier HTML que l'utilisateur voit finalement dans une page HTML statique.
4. Technologie plug-in : smarty peut personnaliser les plug-ins.
Lieux où smarty ne convient pas
1. Contenu qui doit être mis à jour en temps réel. Par exemple, comme l'affichage des stocks, il doit mettre à jour les données fréquemment
2. Petits projets. Petits projets qui nécessitent à la fois un artiste et un programmeur en raison de leur simplicité

3. Utilisez {$smarty} pour conserver les variables dans le modèle

{$smarty.get.page} //Similaire Accédez à $_GET[page]
{smarty.cookies.}
{smarty.post.}
{smarty.session.}
{smarty.server.}

4. Accéder aux variables en php dans les modèles

Il existe deux types de constantes système et de constantes personnalisées dans les scripts php. Ces deux constantes sont également accessibles dans les modèles Smarty et n'ont pas besoin d'être accessibles depuis Attribué en php, la valeur. de la constante peut être directement sortie tant que la variable est conservée via {$smarty}. Exemple de sortie de constantes dans des modèles :
{$smarty.const._MY_CONST_VAL}
{$smarty.const.__FILE__}

5. Médiateur variable

Médiateur variable

6. Lorsque PHP interroge la base de données MySQL, des caractères tronqués apparaissent lors de l'interrogation des résultats chinois. Comment le résoudre ?

1. Propriétés du fichier (enregistrer sous)
2. Méta de fichier (lors de la configuration de l'analyse du navigateur)
3. Paramètres d'encodage lors de la connexion à la base de données
4 Utilisez la fonction d'en-tête dans les fichiers PHP pour déterminer le mécanisme de mise en cache

7.

Si la mise en cache est activée, smarty générera en même temps une page html statique. Si elle n'expire pas dans le délai imparti, lorsque vous y accéderez à nouveau, vous accéderez au fichier html, ce qui réduit le besoin de lire le fichier. base de données, donc en termes d'efficacité, soyez plus élevé.

8. Modèle d'affectation et de chargement de Smarty

$Smarty->assign(name,value)

$Smarty->display('index.html')


9. À quoi sert la technologie des modèles Marty ?

Afin de séparer le php et le html, les artistes et les programmeurs doivent effectuer leurs propres tâches sans interférer les uns avec les autres.

10. Quelles sont les principales configurations smarty ?

1. Introduisez smarty.class.php;

2. Instanciez l'objet smarty;

3. Re-modifiez le chemin du modèle par défaut;
4. Chemin ;
5. Re-modifiez le chemin du fichier de configuration par défaut
6.
7. Vous pouvez définir s'il faut activer le cache.
8. Vous pouvez définir des délimiteurs gauche et droit.

11. À quels détails devez-vous faire attention lorsque vous utilisez smarty ?

Smarty est un moteur de modèles basé sur le concept MVC. Il divise un programme de page en deux parties pour la mise en œuvre : la couche de visualisation et la couche de contrôle

En d'autres termes, la technologie smarty combine l'interface utilisateur et PHP. code séparé.

De cette manière, les programmeurs et les artistes peuvent accomplir leurs tâches respectives sans interférer les uns avec les autres.

12. Faites attention aux problèmes suivants lors de l'utilisation de smarty :

1. Configurez correctement smarty. Il doit principalement instancier l'objet smarty et configurer le chemin du fichier modèle smarty ;

2. Utilisez l'affectation et l'affichage pour afficher la page dans la page php et tous les commentaires ne le sont pas ; autorisés dans le fichier modèle smarty. Les variables et les fonctions doivent être incluses dans les délimiteurs.

A.{}
B. foreach
C if else
D include
E. Littéral

6. >
Retour en haut

1. Compréhension du développement secondaire

Le développement secondaire, en termes simples, consiste à personnaliser et à modifier les logiciels existants, à étendre les fonctions, puis, de manière générale, à réaliser les fonctions que vous souhaitez, le cœur du système d'origine ne sera pas modifié.

2. MVC

Traitement des données du modèle (modèle).

Afficher l'affichage du modèle.

Le contrôleur contrôle le processus.

Quel est le concept de MVC ? Quelles sont les tâches principales de chaque niveau ?

MVC (Model-View-Controller) est un modèle de conception logicielle ou une idée de programmation.
M fait référence à la couche de modèle Modèle, V est la couche Vue (couche d'affichage ou interface utilisateur) et C est la couche Contrôleur.
Le but de l'utilisation de mvc est de séparer M et V, afin qu'un programme puisse facilement utiliser différentes interfaces utilisateur.
Dans le développement de sites Web, la
couche modèle est généralement responsable de l'ajout, de la suppression, de la modification et de la vérification des informations des tables de base de données.
La couche vue est responsable de l'affichage du contenu de la page.
La couche contrôleur joue un rôle. rôle de régulation entre M et V. , la couche contrôleur décide quelle méthode de quelle classe de modèle appeler
Après l'exécution, la couche contrôleur décide à quelle couche de vue attribuer le résultat.

3. Certains avertissements et erreurs apparaissent lors de l'accès au programme de développement secondaire après l'installation

En fonction des erreurs, modifiez les paramètres de configuration du serveur et Baidu

4. le remplacement , l'ajout et la modification de fonctions

sont en fait utilisés pour les applications orientées objet, et le remplacement des modèles est similaire à l'utilisation de smarty

5. Quels éléments de développement secondaires avez-vous utilisés ?

Dedecms phpcms ecshop, si vous avez de bonnes bases dans ces choses de base, cela ne posera aucun problème pour apprendre.

6. Est-il préférable de faire du développement primaire comme PHP ou du développement secondaire ?

Généralement, les petites et moyennes entreprises utilisent le système cms pour le développement secondaire, le tout dans un souci d'efficacité. Bien sûr, si vous souhaitez tout développer en même temps, ce n'est pas un problème, à condition que vous sachiez utiliser le framework et que vous disposiez de suffisamment de temps pour développer en équipe pour éviter les problèmes de droits d'auteur.

7. Dans le processus de développement secondaire, comment les accès aux méthodes entre plusieurs classes sont-ils transmis ?

Il ne s'agit pas d'un héritage de classe mais d'une combinaison d'objets. Passez les objets instanciés via global

8 Si dedecms change de répertoire, un certain élément en arrière-plan ne peut pas être saisi.

Modifiez les paramètres du noyau d'arrière-plan par le nom du répertoire du projet actuel

9. Quelle est la compréhension du modèle personnalisé dans dedecms ?

Dans le système DreamWeaver, il existe le concept de modèle de contenu. Différents modèles de contenu peuvent être utilisés pour créer des sites avec différentes formes de contenu. Le système est livré avec les modèles suivants : articles ordinaires, albums photo, logiciels et. produits. , informations classifiées, sujets spéciaux. Grâce aux modèles fournis avec le système, nous pouvons l'utiliser pour créer différents types de sites. Par exemple, vous pouvez utiliser un atlas pour créer un site d'images et utiliser un modèle logiciel pour créer un site de téléchargement de logiciels.
Bien sûr, les modèles ci-dessus fournis avec le système sont appelés modèles de système. Les utilisateurs peuvent définir eux-mêmes certains modèles, tels que des livres, des albums de musique, etc. Ce n'est qu'en personnalisant ces modèles qu'ils peuvent créer des sites avec plus de formes de contenu.
Cela équivaut à ajouter automatiquement une structure de tableau pour s'adapter aux changements des besoins actuels

10 Concepts en dede, conception et utilisation de modèles, vous devez comprendre les concepts suivants

1. . Modèle de section (couverture) :
fait référence au modèle utilisé par la page d'accueil du site Web ou le canal de couverture de colonne le plus important. Il est généralement nommé avec "index_identification ID.htm". l'utilisateur peut également être utilisé. Sélectionnez s'il faut prendre en charge les balises de modèle de section. S'il est pris en charge, le système utilisera le moteur de balise de modèle de section pour analyser avant de sortir le contenu ou de générer un fichier spécifique.
2. Modèle de liste :
fait référence au modèle de liste de tous les articles dans une certaine colonne du site Web, généralement nommés avec "list_identification ID.htm".
3. Modèle de fichier :
représente le modèle de la page de visualisation du document, tel que le modèle d'article, qui est généralement nommé avec "article_identification ID.htm".
4. Autres modèles :
Le système général comprend généralement des modèles : modèle de page d'accueil, modèle de recherche, RSS, modèle de fonction de compilation JS, etc. De plus, les utilisateurs peuvent également personnaliser un modèle pour créer n'importe quel fichier.

11. Combien de balises sont utilisées dans dede ?

Les balises de contenu de liste ne peuvent être utilisées que dans leur portée, les balises de liste ne peuvent être utilisées que dans des listes et les balises de contenu ne peuvent être utilisées que dans les balises de contenu.
Les balises globales peuvent être utilisées dans toutes les pages

12. Familiarisé avec les bibliothèques de classes courantes

(par exemple : dedesql.class.php familier avec les bibliothèques de fonctions système (common.func) ; .php) ; Familiarisé avec la bibliothèque de fonctions personnalisées (extend.func.php) ; Familiarisé avec le fichier d'entrée frontal (common.inc.php)

7. Développement de la plateforme publique WeChat

Retour vers le haut

1. Mécanisme de fonctionnement de WeChat

Quelle langue est utilisée pour communiquer entre le compte officiel et php : "];//Recevoir des données XML

2. Message tapez

WeChat propose actuellement 7 types de messages de base, qui sont :

(1) Message texte (texte)

(2) Message photo (image)
(3) Voix ( voix)
(4) Vidéo (vidéo)
(5) Localisation géographique (emplacement)
(6) Message de lien (lien
(7) Push d'événement (événement)
taper. Maîtrisez le format de transfert de données lors de l'envoi de différents types de messages

3. La fonction qui lit l'intégralité du fichier dans une chaîne est

File_get_contents

4.

La fonction qui analyse les données XML en objets est

simplexml_load_string()

La fonction qui convertit les chaînes en tableaux est ___exploser________, et la fonction qui convertit les tableaux en chaînes est ____implode________.

Encodage La chaîne de la chaîne URL est ____urlencode________.

5. La fonction de la fonction Sprintf

Vous pouvez consulter le manuel pour cela.

6. Pourquoi le compte officiel WeChat n'est-il pas en mesure de fournir des services ?

(1) Raison du réseau, raison de l'interface de données

(2) Erreur de code, comment deviner la raison

Vérifiez où modifier, si le code est correct

Vous pouvez sortir les données et jetez un oeil. Utilisez php pour gérer les fichiers
$myfile = fopen("newfile.txt", "w");
$txt ="aaaaaaaaaa";
fwrite($myfile, $txt);
fclose ( $myfile);

7. Push d'événement de menu personnalisé

Cliquez

Cliquez sur le lien de saut

Scannez le code QR pour pousser l'événement

Scannez le code QR pour push and pop up
L'événement qui fait apparaître le système pour prendre des photos et envoyer des photos
L'événement qui fait apparaître l'expéditeur de l'album WeChat
L'événement qui fait apparaître le sélecteur de localisation géographique

8. Le rôle du token

Vérification du mécanisme de sécurité, utilisé pour la vérification de la sécurité entre le serveur WeChat et le serveur PHP

9 Le rôle d'Appid et secrect

Lors de la demande de l'API. interface (comme le fonctionnement du menu), vous devez transmettre les deux valeurs de appid et secrect , utilisées pour obtenir le code d'autorisation de l'application

8. Description de la technologie que vous maîtrisez

1. En prenant PHP+MYSQL comme direction, maîtriser le moteur de modèles intelligents, le framework ThinkPHP, le développement de plate-forme publique WeChat, DEDE, ecshop et d'autres systèmes de développement secondaires, et avoir une certaine compréhension de l'orientation objet ; base de données, maîtriser MYSQL, MSSQL et autres bases de données ; familier avec le développement PHP sous Linux
2 Technologie Front-end : maîtrise de la mise en page Web DIV+CSS, javascript, framework JQuery, technologie AJAX, traitement d'images Photoshop3. Un an d'expérience en développement de projets, j'ai utilisé smarty pour développer « XXXXXXXX », ThinkPHP pour développer « XXXXXXXX », utilisé la plateforme publique WeChat pour développer le compte public de « Employment Service Network », utilisé le système Dreamweaver pour développer des sites Web d'entreprise. , etc.


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn