This article mainly shares with you a summary of PHP interview questions, hoping to help everyone.
1. What is object-oriented? What are the main features?
Object-oriented is a design method for programs, which helps improve the reusability of programs and makes the program structure clearer. Main features: encapsulation, inheritance, polymorphism.
2. What is the difference between SESSION and COOKIE? Please explain the reasons and functions of the protocol?
1. The http stateless protocol cannot distinguish whether the user is coming from the same website. Yes, the same user requesting different pages cannot be regarded as the same user.
2. SESSION is stored on the server side, and COOKIE is stored on the client side. Session is relatively secure. Cookies can be modified by certain means and are not safe. Session relies on cookies for delivery.
After disabling cookies, the session cannot be used normally. Disadvantages of Session: It is saved on the server side, and each read is read from the server, which consumes resources on the server. Session is saved in a file or database on the server side. It is saved in a file by default. The file path is specified by session.save_path in the PHP configuration file. Session files are public.
3. What do the 302, 403, and 500 codes in the HTTP status mean?
One, two, three, four and five principles: 1. Message series 2. Success series 3. Redirect series 4. Request error series 5. Server-side error series
302: Temporary transfer successful, requested Content has been moved to a new location 403: Access Forbidden 500: Server Internal Error 401 means Unauthorized.
4. Commands to create a compressed package and decompress the package under Linux
Tar.gz:
Packaging:tar czf file.tar.gz file.txt
Extract: tar xzf file.tar.gz
Bz2:
Package: bzip2 [-k] file
Extract: bunzip2 [-k] file
Gzip (only for files, not retaining the original file)
Packaging: gzip file1.txt
Decompression: gunzip file1.txt.gz
Zip: - r Pack directory
: zip file1.zip file1.txt
Decompress: unzip file1.zip
5. Please write the data type (int char varchar datetime text) means; what is the difference between varchar and char?
Int Integer char Fixed-length character Varchar Variable-length character Datetime Datetime type Text Text type The difference between Varchar and char char is a fixed-length character type. How much space is allocated will occupy as much space. Varchar is a variable-length character type. It takes up as much space as the content is, which can effectively save space. Since the varchar type is variable, the server has to perform additional operations when the data length changes, so the efficiency is lower than that of the char type.
6. What are the basic differences between MyISAM and InnoDB? How is the index structure implemented?
The MyISAM type does not support transactions and table locks, and is prone to fragmentation. It needs to be optimized frequently and has faster reading and writing speeds, while the InnoDB type supports transactions, row locks, and has crash recovery capabilities. Read and write speeds are slower than MyISAM.
Create index: alerttable tablename add index (`field name`)
7. Send a cookie to the client without using cookies.
Understanding: when session_start() is turned on , generate a constant SID. When COOKIE is turned on, this constant is empty. When COOKIE is turned off, the value of PHPSESSID is stored in this constant. By adding a SID parameter after the URL to pass the value of SESSIONID, the client page can use the value in SESSION. When the client opens COOKIE and the server opens SESSION. When the browser makes the first request, the server will send a COOKIE to the browser to store the SESSIONID. When the browser makes the second request, it will store the existing SESSIONID.
8. Differences between isset() and empty()
Isset determines whether the variable exists. You can pass in multiple variables. If one of the variables does not exist, it returns false. Empty determines whether the variable is empty. It is false. Only one variable can be passed. If it is empty, it returns false. real.
9. How to pass variables between pages (at least two ways)? GET, POST, COOKIE, SESSION, hidden form
1. Write a regular expression that matches the URL.
'/^(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|cn|org)(\/[\w -\.\/\?\%\&\=]*)?/i'
2. Please write down a common sorting algorithm, and use PHP to implement bubble sorting, and sort the array $a = array() from small to large.
Common sorting algorithms: bubble sort, quick sort, simple selection sort, heap sort, direct insertion sort, Hill sort, merge sort.
The basic idea of the bubble sorting method is: perform multiple scans from back to front (reverse order) on the keywords of the records to be sorted. When it is found that the order of two adjacent keywords does not match the rules required for sorting, Just exchange these two records. In this way, records with smaller keywords will gradually move from back to front, just like bubbles floating upward in water, so this algorithm is also called bubble sorting method.
// 冒泡排序法 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. Please explain the difference between passing by value and passing by reference in PHP. When to pass by value and when to pass by reference?
Pass by value: Any changes to the value within the function scope will be ignored outside the function
Pass by reference: Any changes to the value within the function scope will also reflect these modifications outside the function
Advantages and Disadvantages: When passing by value, PHP must copy the value. Especially for large strings and objects, this can be a costly operation. Passing by reference does not require copying the value, which is good for improving performance.
What is the function of error_reporting in PHP?
Set the error level of PHP and return to the current level.
Please use regular expression (Regular Expression) to write a function to verify whether the format of the email is correct.
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“电子邮件检测成功”; } }
Write a two-dimensional array sorting algorithm function that can be universal. You can call the PHP built-in function (array_multisort())
//二维数组排序, $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; }
Please use spaces as intervals to split characters The string 'Apple Orange BananaStrawberry' forms an array $fruit,
* All elements in the array are in lowercase letters and sorted in alphabetical order
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());
For the user to input a string $string , it is required that $string can only contain numbers greater than 0 and English commas. Please use regular expressions to verify. If $string does not meet the requirements, an error message will be returned.
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 platform, Apache Http Server failed to start, row What is the wrong idea?
Check whether port 80 used by apache is occupied. If it is occupied, first stop the service occupying port 80, and then start the apache server
PHP session extension default Where to store session data? D
A) SQLite Database
B) MySQL Database
C) Shared Memory
D) File System
E) Session Server
If you want to automatically load a class, which of the following function declarations is correct C
A) function autoload($class_name)
B ) function __autoload($class_name, $file)
C) function __autoload($class_name)
D) function _autoload($class_name)
E) function autoload($ Class_name, $ FILE)
# PHP program uses UTF-8 coding, what is the following program output result? 17(utf8)
array_key_exists()----Determine whether the specified key exists in an array
shuffle()----Rearrange the elements in the array in random order
array_flip ()----Exchange the keys and values in the array
array_reverse()----Reverse the order of the elements in the original array, create a new array and return
array_unique() ----Remove duplicate values in the array
Several methods and functions for php to read file content?
Open the file and read it. Fopen()fread()
Open and read once and complete file_get_contents()
In the following program, what is the value of the variable str? Enter 111?
if( ! $str ) { echo 111; }
The value in $str is: 0, '0', false, null,""
Do you know some PHP technologies (smarty, etc.)?
Smarty,jquery,ajax,memcache,p+css,js,mysqli,pdo,svn,thinkphp,brophp,yii
What PHP forum systems are you familiar with?
Discuz
What PHP mall systems are you familiar with?
Ecshop
What PHP development frameworks are you familiar with?
Brophp,thinkphp
Tell me about your understanding of caching technology?
1. Caching technology is to cache dynamic content into files, and access dynamic pages within a certain period of time to directly call the cached files without having to revisit the database.
2. Use memcache for caching.
What design patterns do you know?
Factory mode, strategy mode, single element mode, observer mode, command chain mode
Tell me about your understanding of code management? Which code version control software do you often use?
Usually a project is developed by a team. Everyone submits their own code to the version server, and the project leader manages it according to the version, which facilitates version control, improves development efficiency, and ensures that when needed Can go back to the old version.
Commonly used version controller: SVN
Tell me what you know about SVN? Advantages and Disadvantages?
SVN is a version controller. Code developed by programmers is submitted to the version server for centralized management.
Advantages of SVN: centralized management of code, easy version control, relatively simple operation, and convenient permission control.
Disadvantages: You cannot modify the server project folder at will.
How to find the path of PHP.ini?
Generally in the installation directory of php, or in the windows directory of the window system.
PHP acceleration mode/extension? PHP debugging mode/tool?
Zend Optimizer acceleration extension
Debugging tool: xdebug
Mysql commands you commonly use?
Show databases
Show tables
Insert into table name()values()
Update table name set field=value where ...
Delete from table name where ...
Select * from table name where condition order by ... Desc/asc limit ... Group by ... Having ...
What is the command to enter the mysql management command line?
Mysql -uroot -p Enter password
show databases; What does this command do?
Show which databases are in the current mysql server
show create database mysql; What is the role of this command?
Show the sql statement that creates the database
show create table user; What is the role of this command?
Display the sql statement that creates the table
desc user; What is the role of this command?
Query the structure of the user table
explain select * from user; What is the role of this command?
Get select related information
show processlist; What is the role of this command?
Show which threads are running
SHOW VARIABLES; What does this command do?
Show system variables and values
SHOW VARIABLES like ’%conn%’; What does this command do?
显示系统变量名包含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{ ... }
相关推荐:
The above is the detailed content of PHP interview questions summary sharing. For more information, please follow other related articles on the PHP Chinese website!

To protect the application from session-related XSS attacks, the following measures are required: 1. Set the HttpOnly and Secure flags to protect the session cookies. 2. Export codes for all user inputs. 3. Implement content security policy (CSP) to limit script sources. Through these policies, session-related XSS attacks can be effectively protected and user data can be ensured.

Methods to optimize PHP session performance include: 1. Delay session start, 2. Use database to store sessions, 3. Compress session data, 4. Manage session life cycle, and 5. Implement session sharing. These strategies can significantly improve the efficiency of applications in high concurrency environments.

Thesession.gc_maxlifetimesettinginPHPdeterminesthelifespanofsessiondata,setinseconds.1)It'sconfiguredinphp.iniorviaini_set().2)Abalanceisneededtoavoidperformanceissuesandunexpectedlogouts.3)PHP'sgarbagecollectionisprobabilistic,influencedbygc_probabi

In PHP, you can use the session_name() function to configure the session name. The specific steps are as follows: 1. Use the session_name() function to set the session name, such as session_name("my_session"). 2. After setting the session name, call session_start() to start the session. Configuring session names can avoid session data conflicts between multiple applications and enhance security, but pay attention to the uniqueness, security, length and setting timing of session names.

The session ID should be regenerated regularly at login, before sensitive operations, and every 30 minutes. 1. Regenerate the session ID when logging in to prevent session fixed attacks. 2. Regenerate before sensitive operations to improve safety. 3. Regular regeneration reduces long-term utilization risks, but the user experience needs to be weighed.

Setting session cookie parameters in PHP can be achieved through the session_set_cookie_params() function. 1) Use this function to set parameters, such as expiration time, path, domain name, security flag, etc.; 2) Call session_start() to make the parameters take effect; 3) Dynamically adjust parameters according to needs, such as user login status; 4) Pay attention to setting secure and httponly flags to improve security.

The main purpose of using sessions in PHP is to maintain the status of the user between different pages. 1) The session is started through the session_start() function, creating a unique session ID and storing it in the user cookie. 2) Session data is saved on the server, allowing data to be passed between different requests, such as login status and shopping cart content.

How to share a session between subdomains? Implemented by setting session cookies for common domain names. 1. Set the domain of the session cookie to .example.com on the server side. 2. Choose the appropriate session storage method, such as memory, database or distributed cache. 3. Pass the session ID through cookies, and the server retrieves and updates the session data based on the ID.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Atom editor mac version download
The most popular open source editor

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.