Heim > Backend-Entwicklung > PHP-Tutorial > Zusammenfassung der PHP-Interviewfragen zum Teilen

Zusammenfassung der PHP-Interviewfragen zum Teilen

小云云
Freigeben: 2023-03-22 09:48:02
Original
1433 Leute haben es durchsucht

Dieser Artikel enthält hauptsächlich eine Zusammenfassung der PHP-Interviewfragen und hofft, allen zu helfen.

1. Was ist objektorientiert? Was sind die Hauptmerkmale?

Objektorientiert ist eine Entwurfsmethode für Programme, die dazu beiträgt, die Wiederverwendbarkeit von Programmen zu verbessern und die Programmstruktur klarer zu machen. Hauptmerkmale: Kapselung, Vererbung, Polymorphismus.

2. Was ist der Unterschied zwischen SESSION und COOKIE?

1. Das http-Stateless-Protokoll kann nicht unterscheiden, ob der Benutzer von derselben Website kommt Ja, derselbe Benutzer, der verschiedene Seiten anfordert, kann nicht als derselbe Benutzer betrachtet werden.

2. SESSION wird auf der Serverseite gespeichert und COOKIE wird auf der Clientseite gespeichert. Sitzungen sind relativ sicher. Cookies können auf bestimmte Weise geändert werden und sind nicht sicher. Die Sitzung ist für die Bereitstellung auf Cookies angewiesen.

Nach der Deaktivierung von Cookies kann die Sitzung nicht normal genutzt werden. Nachteile der Sitzung: Sie wird auf der Serverseite gespeichert und jeder Lesevorgang wird vom Server gelesen, was Ressourcen auf dem Server verbraucht. Die Sitzung wird in einer Datei oder Datenbank auf der Serverseite gespeichert. Der Dateipfad wird standardmäßig durch session.save_path in der PHP-Konfigurationsdatei angegeben. Sitzungsdateien sind öffentlich.

3. Was bedeuten die Codes 302, 403 und 500 im HTTP-Status?

Eins, zwei, drei, vier und fünf Prinzipien: 1. Nachrichtenserie 2. Erfolgsserie 3. Umleitungsserie 4. Anforderungsfehlerserie 5. Serverseitige Fehlerserie

302: Vorübergehend Übertragung erfolgreich, angeforderter Inhalt wurde an einen neuen Speicherort verschoben 403: Zugriff verboten 500: Interner Serverfehler 401 bedeutet Nicht autorisiert.

4. Befehle zum Erstellen eines komprimierten Pakets und Dekomprimieren des Pakets unter Linux

Tar.gz:

Verpackung: tar czf file.tar.gz file.txt

Extrahieren: tar xzf file.tar.gz

Bz2:

Paket: bzip2 [-k] Datei

Extrahieren: bunzip2 [-k] Datei

Gzip (nur Dateien, keine Originaldateien)

Paket: gzip file1.txt

Entpacken: gunzip file1.txt.gz

Zip: - r Packen Sie das Verzeichnis

: zip file1.zip file1.txt

Dekomprimieren: entpacken Sie file1.zip

5. Bitte schreiben Sie den Datentyp (int char varchar datetime text). ; Was ist der Unterschied zwischen Varchar und Char?

Integer char Zeichen mit fester Länge Varchar Zeichen mit variabler Länge Datetime Datetime-Typ Text Texttyp Der Unterschied zwischen Varchar und char char ist ein Zeichentyp mit fester Länge, der genauso viel Platz einnimmt. Varchar ist ein Zeichentyp mit variabler Länge. Er nimmt so viel Platz ein wie der Inhalt, wodurch effektiv Platz gespart werden kann. Da der Typ varchar variabel ist, muss der Server zusätzliche Vorgänge ausführen, wenn sich die Datenlänge ändert, sodass die Effizienz geringer ist als beim Typ char.

6. Was sind die grundlegenden Unterschiede zwischen MyISAM und InnoDB? Wie wird die Indexstruktur implementiert?

Der MyISAM-Typ unterstützt keine Transaktionen und Tabellensperren und ist anfällig für Fragmentierung. Er muss häufig optimiert werden und verfügt über schnellere Lese- und Schreibgeschwindigkeiten, während der InnoDB-Typ Transaktionen und Zeilensperren unterstützt und Abstürze aufweist Wiederherstellungsfunktionen. Die Lese- und Schreibgeschwindigkeiten sind langsamer als bei MyISAM.

Index erstellen: Alerttable-Tabellenname, Index hinzufügen (`Feldname`)

7. Senden Sie ein Cookie an den Client, ohne Cookies zu verwenden.

Verstehen: wann session_start() ist aktiviert, generiert eine konstante SID. Wenn COOKIE aktiviert ist, ist diese Konstante leer. Wenn COOKIE deaktiviert ist, wird der Wert von PHPSESSID in dieser Konstante gespeichert. Durch Hinzufügen eines SID-Parameters nach der URL zur Übergabe des Werts von SESSIONID kann die Clientseite den Wert in SESSION verwenden. Wenn der Client COOKIE öffnet und der Server SESSION öffnet. Wenn der Browser die erste Anfrage stellt, sendet der Server ein COOKIE an den Browser, um die SESSIONID zu speichern. Wenn der Browser die zweite Anfrage stellt, speichert er die vorhandene SESSIONID

8. und empty()

Isset bestimmt, ob die Variable vorhanden ist. Wenn eine der Variablen nicht vorhanden ist, wird false zurückgegeben, um festzustellen, ob die Variable leer ist, und nur eine Variable kann übergeben werden. Wenn sie leer ist, wird „false“ zurückgegeben.

9. Wie übergebe ich Variablen zwischen Seiten (mindestens auf zwei Arten)? GET, POST, COOKIE, SESSION, versteckte Form

1 >

'/^(https?|ftps?)://(www).([^./]+).(com|cn|org)(/[w-./?%&=] * )?/i'

2. Bitte schreiben Sie einen allgemeinen Sortieralgorithmus auf, implementieren Sie die Blasensortierung mit PHP und sortieren Sie das Array $a = array() von klein nach groß.

Gemeinsame Sortieralgorithmen: Blasensortierung, Schnellsortierung, einfache Auswahlsortierung, Heap-Sortierung, Direkteinfügungssortierung, Hill-Sortierung, Zusammenführungssortierung.

Die Grundidee der Blasensortiermethode besteht darin, die Schlüsselwörter der zu sortierenden Datensätze mehrfach von hinten nach vorne zu scannen, wenn festgestellt wird, dass die Reihenfolge zweier benachbarter Schlüsselwörter stimmt nicht den für die Sortierung erforderlichen Regeln entsprechen. Tauschen Sie einfach diese beiden Datensätze aus. Auf diese Weise bewegen sich Datensätze mit kleineren Schlüsselwörtern allmählich von hinten nach vorne, genau wie Blasen, die im Wasser nach oben schwimmen. Daher wird dieser Algorithmus auch als Blasensortiermethode bezeichnet.

// 冒泡排序法
Function mysort($arr){
         For($i=0;$i<count($arr); $i++){
                  For($j=0; $j<count($arr)-1-$i; $j++){
                           If($arr[$j]> $arr[$j+1]){
                                    $tmp=$arr[$j];
                                    $arr[$j]=$arr[$j+1];
                                    $arr[$j+1]=$tmp;
            }
       }
   }
         Return$arr;
}
$arr=array(3,2,1);
print_r(mysort($arr));
Nach dem Login kopieren

3. Bitte erläutern Sie den Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP. Wann soll ein Wert und wann eine Referenz übergeben werden?
Wertübergabe: Alle Änderungen am Wert innerhalb des Funktionsbereichs werden außerhalb der Funktion ignoriert

Als Referenz übergeben: Alle Änderungen am Wert innerhalb des Funktionsbereichs werden diese Änderungen auch außerhalb der Funktion widerspiegeln

Vor- und Nachteile: Bei der Wertübergabe muss PHP den Wert kopieren. Insbesondere bei großen Strings und Objekten kann dies ein kostspieliger Vorgang sein. Bei der Referenzübergabe ist kein Kopieren des Werts erforderlich, was sich positiv auf die Leistungsverbesserung auswirkt.


Was ist die Funktion von error_reporting in PHP?
Legen Sie die Fehlerstufe von PHP fest und geben Sie die aktuelle Stufe zurück.


Bitte schreiben Sie eine Funktion mit regulärem Ausdruck (Regulärer Ausdruck), um zu überprüfen, ob das Format der E-Mail korrekt ist.

if(isset($_POST[&#39;action&#39;]) && $_POST[&#39;action&#39;]==’submitted’){
         $email=$_POST[&#39;email&#39;];
         if(!preg_match(“/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+){1,3}$/”,$email)){
                  echo“电子邮件检测失败”;
         }else{
                  echo“电子邮件检测成功”;
         }
}
Nach dem Login kopieren

Schreiben Sie eine zweidimensionale Array-Sortieralgorithmusfunktion, die universell sein kann. Sie können die in PHP integrierte Funktion (array_multisort()) aufrufen

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
         if(!is_array($arr)) {
                  return false;
         }
         $keysvalue =array();
         foreach($arr as$key => $val) {
                  $keysvalue[$key] = $val[$keys];
         }
         if($order == 0){
                  asort($keysvalue);
         }else {
                  arsort($keysvalue);
         }
         reset($keysvalue);
         foreach($keysvalueas $key => $vals) {
                  $keysort[$key] = $key;
         }
         $new_array =array();
         foreach($keysortas $key => $val) {
                  $new_array[$key] = $arr[$val];
         }
         return $new_array;
}
Nach dem Login kopieren

Bitte Verwenden Sie Leerzeichen als Intervalle, teilen Sie die Zeichenfolge „Apple Orange BananaStrawberry“ auf, um ein Array $fruit zu bilden,

* Alle Elemente im Array sind in Kleinbuchstaben geschrieben und in alphabetischer Reihenfolge sortiert

class sort {
         private $str;
         public function__construct($str) {
                  $this->str=strtolower($str);
         }
         private functionexplodes() {
                  if(empty($this->str)) returnarray();
                  $arr=explode("",$this->str);
                  return is_array($arr)?$arr:array($arr);
         }
         public functionsort() {
                  $explode=$this->explodes();
                  sort($explode);
                  return $explode;
         }
}
$str=&#39;Apple Orange Banana Strawberry&#39;;
$sortob=new sort($str);
var_dump($sortob->sort());
Nach dem Login kopieren

für Benutzereingaben Eine Zeichenfolge $string darf nur Zahlen größer als 0 und englische Kommas enthalten. Wenn $string die Anforderungen nicht erfüllt, wird eine Fehlermeldung zurückgegeben 🎜>

class regx {
         public staticfunction check($str) {
         if(preg_match("/^([1-9,])+$/",$str)){
                  return true;
         }
         return false;
         }
}
$str="12345,6";
if(regx::check($str)) {
echo "suc";
} else {
echo "fail";
}
Nach dem Login kopieren
Windows-Plattform, Apache Http Server konnte nicht gestartet werden, was sind die Ideen zur Fehlerbehebung?

Überprüfen Sie, ob der von Apache verwendete Port 80 belegt ist, stoppen Sie zuerst den Dienst Besetzen Sie Port 80 und starten Sie dann den Apache-Server

Wo speichert die PHP-Sitzungserweiterung standardmäßig Sitzungsdaten?

A) SQLite-Datenbank

B) MySQL-Datenbank

C) Gemeinsamer Speicher

D) Dateisystem

E) Sitzungsserver

Wenn Sie eine Klasse automatisch laden möchten, welche davon Die folgenden Funktionsdeklarationen sind korrekt )

D) function _autoload($class_name)

E) function autoload($class_name, $file)

Das PHP-Programm verwendet die UTF-8-Kodierung Ausgabeergebnis des folgenden Programms? B

A ) 9                                                                                                                                                        

array()----Erstellen Sie ein Array


array_combine()----Erstellen Sie ein neues Array durch Zusammenführen zweier Arrays

<?php$str = ’hello你好世界’;
echo strlen($str);
?>
Nach dem Login kopieren
range()--- - Erstellen Sie ein Array mit dem angegebenen Bereich von Elementen und geben Sie es zurück.

compact()----Erstellen Sie ein Array

array_chunk()----Teilen Sie ein Array in mehrere auf

array_merge()----Zwei oder mehr Arrays zu einem Array zusammenführen

array_slice()----Entferne einen Wert basierend auf Bedingungen aus dem Array

array_diff ()--- -Gibt das Differenzarray zweier Arrays zurück

array_intersect()----Berechnet den Schnittpunkt von Arrays

array_search()----Sucht nach dem im Array angegebenen Wert von

array_splice()----entfernt einen Teil des Arrays und ersetzt ihn

array_key_exists()----Bestimmen Sie, ob der angegebene Schlüssel in einem Array vorhanden ist

shuffle()----Ordnen Sie die Elemente im Array in zufälliger Reihenfolge neu an

array_flip () ----Tauschen Sie die Schlüssel und Werte im Array aus

array_reverse()----Kehren Sie die Reihenfolge der Elemente im ursprünglichen Array um, erstellen Sie ein neues Array und geben Sie zurück

array_unique () ----Doppelte Werte im Array entfernen

Mehrere Methoden und Funktionen für PHP zum Lesen von Dateiinhalten?

Öffnen Sie die Datei und lesen Sie sie. Fopen()fread()

Einmal öffnen und lesen und file_get_contents() abschließen

Welchen Wert hat die Variable str im folgenden Programm?

if( ! $str ) { echo 111; }

Der Wert in $str ist: 0, '0′, false, null,""

Kennen Sie einige PHP-Technologien (smarty , usw.)?

Smarty, jquery, ajax, memcache, p+css, js, mysqli, pdo, svn, thinkphp, brophp, yii

Mit welchen PHP-Forumsystemen sind Sie vertraut?

Discuz

Mit welchen PHP-Mall-Systemen sind Sie vertraut?

Ecshop

Mit welchen PHP-Entwicklungsframeworks sind Sie vertraut?

Brophp, thinkphp

Erzählen Sie mir etwas über Ihr Verständnis der Caching-Technologie?

1. Bei der Caching-Technologie werden dynamische Inhalte in Dateien zwischengespeichert und innerhalb eines bestimmten Zeitraums auf dynamische Seiten zugegriffen, um die zwischengespeicherten Dateien direkt aufzurufen, ohne die Datenbank erneut aufrufen zu müssen.

2. Verwenden Sie Memcache zum Caching.

Welche Designmuster kennen Sie?

Werksmodus, Strategiemodus, Einzelelementmodus, Beobachtermodus, Befehlskettenmodus

Erzählen Sie mir etwas über Ihr Verständnis der Codeverwaltung? Welche Software zur Codeversionskontrolle verwenden Sie häufig?

Normalerweise wird ein Projekt von einem Team entwickelt. Jeder übermittelt seinen eigenen Code an den Versionsserver, und der Projektleiter verwaltet ihn entsprechend der Version, was die Versionskontrolle erleichtert, die Entwicklungseffizienz verbessert und dies bei Bedarf sicherstellt Kann zur alten Version zurückkehren.

Häufig verwendeter Versionscontroller: SVN

Sagen Sie mir, was Sie über SVN wissen? Vor- und Nachteile?

SVN ist ein von Programmierern entwickelter Versionscontroller, der zur zentralen Verwaltung an den Versionsserver übermittelt wird.

Vorteile von SVN: zentralisierte Codeverwaltung, einfache Versionskontrolle, relativ einfache Bedienung und bequeme Berechtigungskontrolle.

Nachteile: Sie können den Serverprojektordner nicht nach Belieben ändern.

Wie finde ich den Pfad zu PHP.ini?

befindet sich im Allgemeinen im PHP-Installationsverzeichnis oder im Windows-Verzeichnis des Windows-Systems.

PHP-Beschleunigungsmodus/-Erweiterung? PHP-Debugging-Modus/Tool?

Zend Optimizer-Beschleunigungserweiterung

Debugging-Tool: xdebug

Welchen MySQL-Befehl verwenden Sie häufig?

Datenbanken anzeigen

Tabellen anzeigen

In Tabelle name()values() einfügen

Tabellennamen aktualisieren set field=value where ...

Aus Tabellennamen löschen, wobei ...

Wählen Sie * aus Tabellennamen, wobei Bedingung Reihenfolge nach ... Auf-/Ab-Grenze ... Gruppieren nach ... Mit ...

Wie lautet der Befehl zum Aufrufen der MySQL-Verwaltungsbefehlszeile?

Mysql -uroot -p Passwort eingeben

Datenbanken anzeigen; Was bewirkt dieser Befehl?

Zeigen Sie, welche Datenbanken sich auf dem aktuellen MySQL-Server befinden

show create Database MySQL; Was bewirkt dieser Befehl?

SQL-Anweisung zum Erstellen der Datenbank anzeigen

show create table user; Was ist der Zweck dieses Befehls?

Zeigen Sie die SQL-Anweisung an, die die Tabelle erstellt

desc user; Welche Rolle spielt dieser Befehl?

Fragen Sie die Struktur der Benutzertabelle ab

erklären Sie select * from user; Was bewirkt dieser Befehl?

Ausgewählte verwandte Informationen abrufen

Prozessliste anzeigen; Was bewirkt dieser Befehl?

Zeigen Sie, welche Threads ausgeführt werden

SHOW VARIABLES; Was bewirkt dieser Befehl?

Systemvariablen und -werte anzeigen

VARIABLEN ANZEIGEN wie „%conn%“ Was bewirkt dieser Befehl?

显示系统变量名包含conn的值

LEFT JOIN 写一个SQL语句?

SELECTA.id,A.class FROM A LEFT JOIN B ON A.cid=B.id

in, not ni, exist, not exist的作用和区别?

in在什么中

Not in 不在什么中

Exists 存在

Not exists 不存在

怎么找到数据库的配置文件路径?

在数据库安装目录下,my.ini

简述Linux下安装PHP的过程?

安装软件之前先安装编译工具gcc、gcc-c++

拷贝源码包,解包解压缩

Cd /lamp/php进入php目录
./configure–prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc指定安装目录和配置文件目录
Make 编译
Make install安装
简述Linux下安装Mysql的过程?
Groupadd mysql 添加一个用户组mysql
Useradd -gmysql mysql 添加一个mysql用户指定分组为mysql
Cd /lamp/mysql 进入mysql目录
./configure–prefix=/usr/local/mysql/ –with-extra-charsets=all
Make
Make all
简述Linux下安装apache的过程?
Cd /lamp/httpd 进去apache软件目录
./configure–prefix=/usr/local/apache2/ –sysconfdir=/etc/httpd/ –with-included-apr
Make
Make all
HTML/CSS/p/Javascritp:
1. 设计一个页面(4个 p 第一个p 宽960px 居中;第2-4个p  3等分960px;)
<style>
Body{Text-align:center; Margin:0; Padding:0; }
#box{Width:960px; Margin:0 auto; }
.small{Width:320px; Float:left; }
</style>
<pid=’box’>
<pclass=’small’></p>
<pclass=’small’></p>
<pclass=’small’></p>
</p>
用javascript取得一个input的值?取得一个input的属性?
document.getElementById(‘name’).value;
document.getElementById(‘name’).type;
用Jquery取得一个input的值?取得一个input的属性?
$(“input[name=&#39;aa&#39;]“).val();
$(“input[name=&#39;aa&#39;]“).attr(‘type’);
请您写一段ajax提交的js代码,或者写出ajax提交的过程逻辑。
var xmlhttp;
if(window.XMLHttpRquest){
xmlhttp=newXMLHttpRequest();
}elseif(window.ActiveXObject){
xmlhttp=newActiveXObject(‘Microsoft.XMLHTTP’);
}
xmlhttp.open(‘GET’,’1.php?aa=name’,true);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
var text=xmlhttp.responseText;
}
}
}
xmlhttp.send(null);
Nach dem Login kopieren

简述Cookie的设置及获取过程

设置COOKIE的值:

Setcookie(名称,值,保存时间,有效域);

获取值:$_COOKIE['名称'];

面向对象中接口和抽象类的区别及应用场景?

1、有抽象方法的类叫做抽象类,抽象类中不一定只有抽象方法,抽象方法必须使用abstract关键字定义。

2、接口中全部是抽象方法,方法不用使用abstract定义。

3、当多个同类的类要设计一个上层,通常设计为抽象类,当多个异构的类要设计一个上层,通常设计为接口。

用面向对象来实现A对象继承B和C对象

Interface B{... }

Interface C{... }

Class Aimplements B,C{ ... }

相关推荐:

PHP面试题之算法题

php面试题中面向对象的题目分析

最让人容易出错的10道php面试题

Das obige ist der detaillierte Inhalt vonZusammenfassung der PHP-Interviewfragen zum Teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage