Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der PHP-Interviewfragen

Zusammenfassung der PHP-Interviewfragen

不言
不言Original
2018-04-21 10:27:358651Durchsuche

Der in diesem Artikel vorgestellte Inhalt ist eine Zusammenfassung von PHP-Interviewfragen, die einen gewissen Referenzwert haben. Jetzt können Freunde in Not darauf verweisen.

Verwandte Empfehlungen 2019 Zusammenfassung der PHP-Interviewfragen (Sammlung)

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 Protokoll kann nicht unterscheiden, ob Benutzer von derselben Website kommen. Derselbe Benutzer, der verschiedene Seiten anfordert, kann nicht als derselbe Benutzer angesehen 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: 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. Weiterleitungsserie 4. Anforderungsfehlerserie 5. Serverseitige Fehlerserie

302: Temporäre Übertragung erfolgreich, der angeforderte Inhalt wurde an einen neuen Speicherort verschoben. 403: Zugriff verboten. 500: Interner Serverfehler. 401 steht für Unbefugt.

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

Tar.gz:

Paket: tar czf file.tar.gz file.txt

Dekomprimierung:tar xzf file.tar.gz

Bz2:

Verpackung: bzip2 [-k] Datei

Entpacken: bunzip2 [-k] Datei

Gzip (nur Dateien, Originaldateien nicht behalten)

Paket: gzip file1.txt

Entpacken: gunzip file1 . txt.gz

Zip: -r Packverzeichnis

: zip file1.zip file1.txt

Entpacken: entpacken file1.zip

5. Bitte notieren Sie die Bedeutung des Datentyps (int char varchar datetime text); was ist der Unterschied zwischen varchar und char?

Integer char Zeichen fester Länge Varchar Zeichen variabler Länge Datetime Datum Zeittyp Text Texttyp

Der Unterschied zwischen Varchar und char char ist ein Zeichentyp fester Länge, wie viel Platz ist zugewiesen, wie viel Platz nimmt es ein? 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, Zeilensperren usw. unterstützt. und verfügt über Funktionen zur Wiederherstellung nach einem Absturz. 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: Wenn session_start() aktiviert ist, wird eine konstante SID generiert. 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, werden die vorhandenen

isset() und empty( ) gespeichert. Differenz

Isset bestimmt, ob die Variable vorhanden ist. Sie können mehrere Variablen übergeben. Wenn eine der Variablen nicht vorhanden ist, wird festgelegt, ob die Variable leer ist Es kann eine Variable übergeben werden. Gibt „true“ zurück, wenn sie leer ist, oder „false“.

9.

Wie übergebe ich Variablen zwischen Seiten (mindestens auf zwei Arten)?

GET, POST, COOKIE, SESSION, versteckte Form

1. Schreiben Sie einen regulären Ausdruck, der mit der URL übereinstimmt.

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

2. Bitte notieren Sie sich gängige Sortieralgorithmen und verwenden Sie PHP-Implementierungen Blasensortierung, Sortieren des Arrays $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 nicht übereinstimmt Mit den für die Sortierung erforderlichen Regeln werden diese zwei Datensätze ausgetauscht. 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 auch außerhalb der Funktion berücksichtigt Funktion ändern

Vorteile 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“电子邮件检测成功”;
         }
}

Schreiben Sie eine zweidimensionale Array-Sortieralgorithmus-Funktion, die vielseitig ist und die in PHP integrierte Funktion (array_multisort()) aufrufen kann.

//二维数组排序, $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, um die Zeichenfolge „Apple Orange BananaStrawberry“ zu teilen, um ein Array $fruit,

* 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());

Damit der Benutzer eine Zeichenfolge $string eingeben kann, Anforderungen $string kann nur Zahlen größer als 0 und englische Kommas enthalten. Für $strings, die die Anforderungen nicht erfüllen, 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";
}

Windows-Plattform, Apache Http Server konnte nicht gestartet werden, was sind die Ideen zur Fehlerbehebung?

Überprüfen Sie, ob Port 80 verwendet wird von Apache ist belegt, wenn ja, stoppen Sie zunächst den Dienst, der Port 80 belegt, und starten Sie dann den Apache-Server.

Wo speichert die PHP-Sitzungserweiterung standardmäßig Sitzungsdaten? 🎜>
A) SQLite-Datenbank

B) MySQL-Datenbank

C) Shared Memory

D) Dateisystem

E) Sitzungsserver

Wenn Sie eine Klasse automatisch laden möchten, welche der folgenden Funktionsdeklarationen ist korrekt? C

A) function autoload( $class_name)

B) Funktion __autoload ($class_name, $file)

C) Funktion __autoload($class_name)

D) Funktion _autoload($class_name)

E) function autoload($class_name, $ file)

Das PHP-Programm verwendet UTF-8-Codierung. Was ist das Ausgabeergebnis des folgenden Programms B?

a1bf33353c0eabf53b7f0159eaf7eaf6

A )                                                                                                                                                 utf8)

Welche PHP-Array-bezogenen Funktionen kennen Sie?

array()----Erstellen Sie ein Array

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

range() - ---Erstellt ein Array mit Elementen im angegebenen Bereich und gibt es zurück

compact()----Erstellt ein Array

array_chunk()----Teilt ein Array in mehrere auf

array_merge()----Fügen Sie zwei oder mehr Arrays zu einem Array zusammen

array_slice()----Entfernen Sie einen Wert aus dem Array entsprechend den Bedingungen

array_diff() ----Gibt das Differenz-Array zweier Arrays zurück

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

array_search()----Im Array nach einem bestimmten Wert suchen

array_splice()----Entfernen Sie einen Teil des Arrays und ersetzen Sie 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

array_unique() zurück----Entfernen Sie doppelte Werte im Array

Mehrere Methoden und Funktionen zum Lesen von Dateiinhalten in PHP?

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

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

Welchen Wert hat im folgenden Programm die Variable str? Geben Sie 111 ein?

if( ! $str ) { echo 111; }

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

Welche PHP-Technologien kennen Sie (Smarty usw.)?

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

Sie Mit welchen PHP-Forensystemen sind Sie vertraut?

Discuz

 

你所熟悉的PHP商城系统 有哪些?

Ecshop

 

你所熟悉的PHP开发框架 有哪些?

Brophp,thinkphp

 

说说你对缓存技术的了解?

1、缓存技术是将动态内容缓存到文件中,在一定时间内访问动态页面直接调用缓存文件,而不必重新访问数据库。

2、使用memcache可以做缓存。

 

你所知道的设计模式有哪些?

工厂模式、策略模式、单元素模式、观察者模式、命令链模式

 

说说你对代码管理的了解?常使用那些代码版本控制软件?

通常一个项目是由一个团队去开发,每个人将自己写好的代码提交到版本服务器,由项目负责人按照版本进行管理,方便版本的控制,提高开发效率,保证需要时可以回到旧版本。

常用的版本控制器:SVN

 

说说你对SVN的了解?优缺点?

SVN是一种版本控制器,程序员开发的代码递交到版本服务器进行集中管理。

SVN的优点:代码进行集中管理,版本控制容易,操作比较简单,权限控制方便。

缺点:不能随意修改服务器项目文件夹。

 

怎么找到PHP.ini的路径?

一般都在php的安装目录下,或者window系统的windows目录下。

 

PHP加速模式/扩展? PHP调试模式/工具?

Zend Optimizer加速扩展

调试工具:xdebug

 

你常用到的mysql命令?

Show databases

Show tables

Insert into 表名()values()

Update 表名 set字段=值 where ...

Delete from 表名where ...

Select * from 表名where 条件 order by ... Desc/asc limit ... Group by ... Having ...

 

进入mysql管理命令行的命令?

Mysql -uroot -p回车密码

 

show databases; 这个命令的作用?

显示当前mysql服务器中有哪些数据库

 

show create database mysql; 这个命令的作用?

显示创建数据库的sql语句

 

show create table user; 这个命令的作用?

显示创建表的sql语句

 

desc user; 这个命令的作用?

查询user表的结构

 

explain select * from user; 这个命令的作用?

获取select相关信息

 

show processlist; 这个命令的作用?

显示哪些线程正在运行

 

SHOW VARIABLES; 这个命令的作用?

显示系统变量和值

 

SHOW VARIABLES like ’%conn%’; 这个命令的作用?

显示系统变量名包含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);

 

简述Cookie的设置及获取过程

设置COOKIE的值:

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

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

 

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

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

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

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

 

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

Interface B{... }
Interface C{... }
Class Aimplements B,C{ ... }

相关推荐:

最全最详细的PHP面试题(带有答案)

PHP 经典面试题集 PHP 经典面试题集

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

Stellungnahme:
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