国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

PHP面試之一:PHP基礎(chǔ)知識(shí)點(diǎn)

waterc / 3571人閱讀

摘要:之前,第三方編譯是管理器,是解釋器之后,官方自帶,與模式。又是解釋器,又是管理器以模塊模式運(yùn)行常見(jiàn)配置數(shù)組排序

PHP引用變量

什么是引用變量?如何定義引用變量?

引用意味著用不同的名字訪問(wèn)同一個(gè)內(nèi)容
定義引用變量:使用&

引用變量的工作原理

普通變量的工作原理
$a = range(0,10000);
var_dump(memory_get_usage()); //int(742072)
$b = $a;
var_dump(memory_get_usage()); //int(742096)
$a = range(0,30000);
var_dump(memory_get_usage()); //int(1532648)

引用變量的工作原理
$a = range(0,10000);
var_dump(memory_get_usage()); //int(742072)
$b = &$a;
var_dump(memory_get_usage()); //int(742096)
$a = range(0,30000);
var_dump(memory_get_usage()); //int(1135312)

注意:
1、引用變量一旦定義,此變量永遠(yuǎn)是引用變量,不可能再變回普通變量
2、引用變量可以修改引用的值,例如:
$a = "a";
$c = "c";
$b = &$a;
$b = &$c; //修改引用
常量及數(shù)據(jù)類(lèi)型

字符串的定義方式及各自區(qū)別

單引號(hào)、雙引號(hào)、heredoc、newdoc
單引號(hào):不能解析變量,只能解析單引號(hào)(")和反斜線()轉(zhuǎn)義字符,比雙引號(hào)效率高
雙引號(hào):解析變量(可使用{}括起來(lái)),能解析所有轉(zhuǎn)義字符
heredoc:功能類(lèi)似雙引號(hào)(用于大字符串)
newdoc: 功能類(lèi)似單引號(hào)
//heredoc定義
$str = <<

數(shù)據(jù)類(lèi)型

浮點(diǎn)數(shù):不能用于運(yùn)算/比較運(yùn)算,因?yàn)楦↑c(diǎn)數(shù)不是精確的
FALSE七種情況:0、0.0、"0"、""、NULL、false、array()
超全局?jǐn)?shù)組(九種):
$GLOBALS、$_GET、$_POST、$_SERVER、$_SESSION、$_COOKIE、$_FILES、$_ENV、$_REQUEST

//$GLOBALS包含其他8種
//$_REQUEST包含$_GET、$_POST和$_COOKIE

$_SERVER["REQUESR_URI"]與$_SERVER["PATH_INFO"]區(qū)別

http://localhost/aaa/index.php/foo/bar.html?p=222&q=333
$_SERVER["QUERY_STRING"] = "p=222&q=333";
$_SERVER["REQUEST_URI"]  = "/aaa/index.php/foo/bar.html?p=222&q=333";
$_SERVER["SCRIPT_NAME"]  = "/aaa/index.php";
$_SERVER["PHP_SELF"]     = "/aaa/index.php";
$_SERVER["PATH_INFO"] = ‘/foo/bar.html’

常量

2種定義方式:define()與const
define()函數(shù)
const是語(yǔ)言結(jié)構(gòu)
區(qū)別
define()不可以定義類(lèi)常量
預(yù)定義常量
__FILE__、__LINE__
運(yùn)算符

PHP錯(cuò)誤運(yùn)算符@

當(dāng)將其放置在一個(gè)PHP表達(dá)式之前,該表達(dá)式可能產(chǎn)生的任何錯(cuò)誤信息都將被忽略掉

運(yùn)算符的優(yōu)先級(jí)

運(yùn)算符優(yōu)先級(jí)

遞增/遞減 > ! > 算術(shù)運(yùn)算符 > 大小比較 > (不)相等比較 > 引用 > ^ > | > 邏輯與&& > 邏輯或|| > 三目 > 賦值 > and > xor > or
 0 && $b = 3 > 0){
        echo "true";
    }else{
        echo "false";
    }
?>

// 相當(dāng)于
if($a = ((3 > 0) && ($b = 3 > 0)))

比較運(yùn)算符

==與===區(qū)別
等值判斷(FALSE七種情況)

邏輯運(yùn)算符

短路作用: 邏輯與&& > 邏輯或|| > 三目 > 賦值 > and > xor > or

遞增/遞減運(yùn)算符

1、遞增/遞減不影響布爾值
2、遞減NULL值沒(méi)有效果
3、遞增NULL值為1
4、遞增/遞減位置不同效果不同
流程控制

PHP遍歷數(shù)組的三種方式及各自區(qū)別

1.for循環(huán)(while/do...while) 
2.foreach循環(huán)
3.while、each()、list()組合
區(qū)別:
for循環(huán):只能遍歷索引數(shù)組
foreach循環(huán):能遍歷關(guān)聯(lián)數(shù)組和索引數(shù)組
while、each()、list()組合:能遍歷關(guān)聯(lián)數(shù)組和索引數(shù)組

foreach循環(huán)遍歷數(shù)組前,會(huì)對(duì)數(shù)組進(jìn)行reset()操作
while、each()、list()組合則不會(huì)進(jìn)行reset()操作

PHP分支結(jié)構(gòu)

if...elseif... 原則:可能性大的放在前面
switch...case... 與 if 區(qū)別: 判斷參數(shù)的數(shù)據(jù)類(lèi)型只能是整形、浮點(diǎn)、字符串
switch...case...中,如果使用continue與break等價(jià)
如果switch...case...外層還有for,那么使用continue2才可以跳出循環(huán)
一般switch要比if性能高
自定義函數(shù)及內(nèi)部函數(shù)

變量作用域

大部分變量只有一個(gè)多帶帶的范圍,這個(gè)多帶帶范圍跨度包含了include與requires的文件
如果在非類(lèi)中引入文件,該文件內(nèi)部可以使用全局變量和函數(shù)
如果在類(lèi)中引入文件,該文件內(nèi)部可以使用函數(shù)、類(lèi)的方法、類(lèi)的屬性

函數(shù)/方法傳參

傳參分2種:
1、值傳遞
2、引用傳遞(函數(shù)修改該值,傳遞的參數(shù)必須是變量
//引用傳遞函數(shù)定義
$a = 1;
function fn(&$a){
    return ++$a;
}
echo fn($a); //2

函數(shù)返回值

可以返回任意數(shù)據(jù)類(lèi)型的值
省略return 默認(rèn)返回NULL,如果要返回多個(gè)值請(qǐng)使用數(shù)組
函數(shù)2種方式返回
1、普通返回
2、引用返回
function &fn(){
    $a = 5;
    return $a;
}
$b = &fn();
函數(shù)內(nèi)部修改外部變量的值,使用引用傳參
外部變量修改函數(shù)內(nèi)部變量的值,使用引用返回

引入外部文件

引入的代碼將繼承引入位置的作用域,即使用include或require位置可以使用的變量
include與require區(qū)別

系統(tǒng)內(nèi)置函數(shù)

時(shí)間日期函數(shù)
date()、strtotime()、mktime()、time()、microtime()、date_default_timezone_set()
IP處理函數(shù)
ip2long()、long2ip()
打印處理函數(shù)
print()、printf()、print_r()、echo、sprintf()、var_dump()、var_export()
序列化及反序列化函數(shù)
serialize()、unserialize()
字符串處理函數(shù)
trim()、
數(shù)組處理函數(shù)
array_rande()、
正則表達(dá)式

正則表達(dá)式作用(四種)

分割、查找、匹配、替換 作用對(duì)象:字符串、字符串、字符串(重要的事情記3遍)

正則表達(dá)式的組成部分

分隔符:正斜線(/)、hash符(#)、取反符號(hào)(~)
通用原子:d(匹配數(shù)字)、D、w(匹配數(shù)字、字母、下劃線)、W、s(匹配空格)、S
元字符:
    量詞 ?、+、*、{n}、{n,}、{n,m}
    通配符 .
    范圍匹配 []、[-]、[^]
模式修正符:i、m、u、U

向后引用

題目:把字符串 "abc" 替換為 "abc" 如何使用正則做到?
$str = "abc";
$pattern = "/(.*)/";
preg_replace($pattern, "1", $str);

貪婪模式

題目:把字符串 "abcdef" 替換為 "abcdef" 如何使用正則做到?
$str = "abcdef";
$pattern = "/(.*?)/";
$pattern = "/(.*)/U";
preg_replace($pattern, "1", $str);
注意:默認(rèn)是貪婪模式

正則表達(dá)式PHP函數(shù)

preg_match()、preg_match_all()、preg_replace()、preg_split()

中文匹配問(wèn)題

中文分utf-8與gbk兩種編碼,他們正則表達(dá)式不同
utf-8: 0x4e00 - 0x9fa5 
模式修正符需要使用u
文件及目錄處理

打開(kāi)文件函數(shù):fopen()

用于打開(kāi)一個(gè)文件,打開(kāi)時(shí)需要指定一個(gè)打開(kāi)模式
打開(kāi)模式:r/r+、w/w+、x/x+、a/a+、b、t
r+ 追加寫(xiě) w 覆蓋寫(xiě)

讀取文件函數(shù):fread()/fgets()/fgetc()

fgets() 讀取一行
fgetc() 讀取字符

寫(xiě)入文件函數(shù):fwrite()/fputs()

關(guān)閉文件函數(shù):fclose()

不需要fopen()都能操作文件

file_put_contents()
file_get_contents()

訪問(wèn)遠(yuǎn)程文件(不推薦開(kāi)啟)

開(kāi)啟allow_url_fopen() ,http協(xié)議只能使用只讀,ftp協(xié)議可以只能只讀或只寫(xiě)

目錄操作函數(shù)

目錄名稱(chēng):basename()dirname()pathinfo()
目錄讀取:opendir()readdir()closedir()rewinddir()
目錄刪除:rmdir()
目錄創(chuàng)建:mkdir()

目錄遍歷

//遍歷

function loopDir($dir){

    if(is_dir($dir)){
        if($handle = opendir($dir)){
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    echo $file."
";
                    if(filetype($dir.DIRECTORY_SEPARATOR.$file === "dir")){
                        loopDir($dir.DIRECTORY_SEPARATOR.$file);
                    }
                }
            }
        }
        
    }else{
        echo basename($file)."
";
    }
}
會(huì)話控制

會(huì)話控制的三種實(shí)現(xiàn)

1、使用URL帶參數(shù)的方式(不安全,不推薦)
2、cookie
3、session

如果禁用cookie后,該如何實(shí)現(xiàn)會(huì)話控制?

只能通過(guò)URL把SessionID傳過(guò)去
">下一頁(yè)
簡(jiǎn)化:
下一頁(yè)
面向?qū)ο?/b>

訪問(wèn)控制符

public、protected、private
網(wǎng)絡(luò)協(xié)議

GET與POST區(qū)別

1、GET可以收藏成瀏覽器書(shū)簽,而POST不行
2、GET可以保存在瀏覽器歷史記錄里,而POST不行
3、GET安全性相比POST差
4、GET請(qǐng)求數(shù)據(jù)編碼:application/x-www-form-urlencoded,而POST則除了application/x-www-form-urlencoded編碼,還可以是multipart/form-data或者application/json或者text/xml
5、GET請(qǐng)求參數(shù)是有長(zhǎng)度限制的,url最多2048個(gè)字節(jié),而POST沒(méi)有限制

四種數(shù)據(jù)編碼

開(kāi)發(fā)環(huán)境及PHP配置

版本控制軟件

PHP運(yùn)行原理

主要了解 CGI、FastCGI、PHP-FPM
CGI:是一種通訊協(xié)議(已經(jīng)過(guò)時(shí),性能低下)
FastCGI:也是一種通訊協(xié)議,是CGI的升級(jí)版(現(xiàn)在推薦使用)
PHP-FPM:是FastCGI進(jìn)程管理器
php-cgi.exe:是PHP腳本解析器,不是FastCGI進(jìn)程管理器
PHP 有5種PHP運(yùn)行模式:鏈接
1、以CGI模式運(yùn)行PHP

LoadModule cgi_module modules/mod_cgi.so //要加載apache自帶模塊


    Options FollowSymLinks ExecCGI
    AddHandler cgi-script .php
    FcgidWrapper "D:/BtSoft/WebSoft/php/7.1/php-cgi.exe" .php


//如果同時(shí)打開(kāi)多個(gè)則會(huì)有很多php-cgi.exe,并且在執(zhí)行完成之后消失:

2、以FastCGI模式運(yùn)行PHP

FastCGI模式根據(jù)進(jìn)程管理器的不同可以分為:Apache內(nèi)置進(jìn)程管理器,PHP-FPM進(jìn)程管理器

Apache內(nèi)置進(jìn)程管理器:
LoadModule fcgid_module modules/mod_fcgid.so //要加載apache模塊,該模塊要多帶帶下載

   FastCgiServer /home/weiyanyan/local/apache/cgi-bin/php-cgi -processes 20
   AddType application/x-httpd-php .php
   AddHandler php-fastcgi .php
   Action php-fastcgi /cgi-bin/php-cgi


PHP-FPM進(jìn)程管理器:
LoadModule fastcgi_module modules/mod_fcgid.so

    FastCgiExternalServer /home/weiyanyan/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000
    AddType application/x-httpd-php .php
    AddHandler php-fastcgi .php
    Action php-fastcgi /cgi-bin/php-cgi

php54是之前是一種關(guān)系,php54之后另一種關(guān)系。
php54之前,php-fpm(第三方編譯)是管理器,php-cgi是解釋器
php54之后,php-fpm(官方自帶),master 與 pool 模式。php-fpm 和 php-cgi 沒(méi)有關(guān)系了。php-fpm又是解釋器,又是管理器
3、以Apache模塊模式運(yùn)行PHP

LoadModule php5_module "C:/php5/php5apache2_2.dll" 
AddType application/x-httpd-php .php 

PHP常見(jiàn)配置

PHP 數(shù)組排序

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25924.html

相關(guān)文章

  • PHP面試總結(jié)

    摘要:而在面試過(guò)程中,也是經(jīng)常會(huì)遇到的,所以,無(wú)論是面試準(zhǔn)備還是日常開(kāi)發(fā),我們都應(yīng)該關(guān)注這方面的東西。二分法的基本做法是確定要查找的區(qū)間。區(qū)間內(nèi)選取二分點(diǎn)。根據(jù)二分點(diǎn)的值,綜合左右區(qū)間情況以及求解的目的,舍去一半無(wú)用的區(qū)間。 showImg(https://images.pexels.com/photos/935977/pexels-photo-935977.jpeg); 前言 面試是你進(jìn)入...

    alin 評(píng)論0 收藏0
  • 一個(gè) 1年工作經(jīng)驗(yàn)的 PHP 程序員是如何被面試官虐的?

    摘要:準(zhǔn)備不充分第一輪不過(guò)第一家,廣州琶洲一家環(huán)境超級(jí)好,福利也不錯(cuò),主營(yíng)美顏的公司,這也是我最感遺憾的一次面試機(jī)會(huì)。主要是第一輪面試第一個(gè)問(wèn)題的種數(shù)據(jù)類(lèi)型,只答了一個(gè)。 前言 首先需要說(shuō)明的一點(diǎn),本人只是一個(gè)畢業(yè)一年,只有一年工作經(jīng)驗(yàn)的普通PHPer,能力有限,這篇文章只是將我這幾周來(lái)的感受和體驗(yàn)分享出來(lái),希望能給許多像我一樣,或者互聯(lián)網(wǎng)行業(yè)的新手帶來(lái)一些收獲,當(dāng)然哪里說(shuō)的不對(duì)或不足還是希...

    pcChao 評(píng)論0 收藏0
  • 2018 PHP 面試總結(jié)

    摘要:最近面試了不少公司,正好把記得的問(wèn)題做個(gè)總結(jié)。抽象類(lèi)的接口的區(qū)別,不在于編程實(shí)現(xiàn),而在于程序設(shè)計(jì)模式的不同。一般來(lái)講,抽象用于不同的事物,而接口用于事物的行為。 最近面試了不少公司,正好把記得的問(wèn)題做個(gè)總結(jié)。 本文 github 會(huì)持續(xù)更新 公眾號(hào) 搜索 蘇生不惑 或者掃二維碼關(guān)注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...

    William_Sang 評(píng)論0 收藏0
  • 2018 PHP 面試總結(jié)

    摘要:最近面試了不少公司,正好把記得的問(wèn)題做個(gè)總結(jié)。抽象類(lèi)的接口的區(qū)別,不在于編程實(shí)現(xiàn),而在于程序設(shè)計(jì)模式的不同。一般來(lái)講,抽象用于不同的事物,而接口用于事物的行為。 最近面試了不少公司,正好把記得的問(wèn)題做個(gè)總結(jié)。 本文 github 會(huì)持續(xù)更新 公眾號(hào) 搜索 蘇生不惑 或者掃二維碼關(guān)注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...

    lunaticf 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<