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));
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['action']) && $_POST['action']==’submitted’){ $email=$_POST['email']; if(!preg_match(“/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+){1,3}$/”,$email)){ echo“电子邮件检测失败”; }else{ echo“电子邮件检测成功”; } }
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; }
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='Apple Orange Banana Strawberry'; $sortob=new sort($str); var_dump($sortob->sort());
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"; }
Wo speichert die PHP-Sitzungserweiterung standardmäßig Sitzungsdaten?
array_combine()----Erstellen Sie ein neues Array durch Zusammenführen zweier Arrays
<?php$str = ’hello你好世界’; echo strlen($str); ?>
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='aa']“).val(); $(“input[name='aa']“).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);
简述Cookie的设置及获取过程
设置COOKIE的值:
Setcookie(名称,值,保存时间,有效域);
获取值:$_COOKIE['名称'];
面向对象中接口和抽象类的区别及应用场景?
1、有抽象方法的类叫做抽象类,抽象类中不一定只有抽象方法,抽象方法必须使用abstract关键字定义。
2、接口中全部是抽象方法,方法不用使用abstract定义。
3、当多个同类的类要设计一个上层,通常设计为抽象类,当多个异构的类要设计一个上层,通常设计为接口。
用面向对象来实现A对象继承B和C对象
Interface B{... }
Interface C{... }
Class Aimplements B,C{ ... }
相关推荐:
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!