Heim >Schlagzeilen >Zusammenfassung und Weitergabe von PHP-Backend-Wissenspunkten

Zusammenfassung und Weitergabe von PHP-Backend-Wissenspunkten

小云云
小云云Original
2018-02-28 15:37:585332Durchsuche

Dieser Artikel gibt Ihnen hauptsächlich eine Zusammenfassung der PHP-Backend-Wissenspunkte. Ich hoffe, dieser Artikel kann Ihnen helfen.

1. Webserver

Die Rolle des Webservers: Anfragen von Clients empfangen (PC/PAD/TELEFON), benötigte Daten finden (Dateien/Datenbanken/andere Systeme), An den Kunden zurückgeschickt.
Webserver werden in zwei Typen unterteilt:
(1) Statischer Webserver: Der bereitgestellte Inhalt bleibt jederzeit für jedermann unverändert

静态Web内容:HTML/CSS/JS/Flash/GIF/音视频...
常见的静态Web服务器:Apache Httpd、MS IIS、NginX

(2) Dynamischer Webserver: Der bereitgestellte Inhalt kann sich für verschiedene Personen und zu unterschiedlichen Zeiten ändern

动态Web内容:
    JSP = HTML + Java(静态Web服务器+Java解释器)
    PHP = HTML + PHP(静态Web服务器+PHP解释器)
    ASP.NET = HTML + C#(静态Web服务器+C#解释器)
    Node.js = HTML + Node

2. PHP-Hintergrundwissen

PHP: Persönliche Homepage => PHP ist Hypertext-Präprozessor (Zend)
LAMP-Kombination = Linux + ApacheHttpd + MySQL + PHP

3. Erstellen Sie eine PHP-Entwicklungsumgebung

(1) Serverseitig: Laden Sie einen statischen Webserver herunter und installieren Sie ihn

c:/xampp/apache/bin/httpd.exe

(2 ) Serverseitig: Laden Sie den PHP-Interpreter herunter und installieren Sie ihn, integrieren Sie ihn in den Webserver

C:/xampp/php/php.exe

(3) Serverseitig: Schreiben Sie statische/dynamische Webseiten und speichern Sie sie auf dem Webserver

C:/xampp/htdocs

( 4) Serverseite: Starten Sie den Webserver und öffnen Sie die erforderlichen Ports

ApacheHttpd服务器默认占用80/443端口

------------------------------------- ------- ---------------
(5) Client: Geben Sie das Protokoll, die Adresse und den Port in den Browser ein, um auf den Webserver zuzugreifen

http://127.0.0.1:80

4.PHP-Variablen und -Konstanten

a = 1;
b = 2;
c = a + b;

Variablen: Beträge, deren Werte sich ändern können, z. B. das Alter einer Person, das Passwort eines Benutzers und der Preis eines Produkts.

PHP中声明一个变量:
    $变量名 = 值;         #等号读作“赋值”
输出一个变量的值:
    echo $变量名;         #输出变量值时不加单引号

Konstante: Eine Größe, deren Wert sich nicht ändern kann, wie z. B. PI und E.

声明一个常量:
    const  常量名  =  值;
输出一个常量值:
    echo  常量名;

Variablennamen können Zahlen, Buchstaben und Unterstriche enthalten, dürfen aber nicht mit einer Zahl beginnen
Zulässig: $age, $age2, $_age_2, $emp_age, $empAge
Unzulässig: $2age, $user-Name, $user Name
Der Konstantenname kann Zahlen, Buchstaben und Unterstriche enthalten, aber er darf nicht mit einer Zahl beginnen; es ist üblich, dass bei Konstantennamen ausschließlich Großbuchstaben verwendet werden
Zulässig: AGE, AGE2, EMP_AGE

  1. Datentypen in PHP


PHP/JS ist eine „schwach typisierte Sprache“ – kein Typ erforderlich beim Erstellen von Variablen anzugeben, einer Variablen können nacheinander Werte verschiedener Typen zugewiesen werden

$i = 10;
$i = 'Hello';
$i = true;

echo $variable name; kann nur zur Ausgabe des Werts der Variablen verwendet werden;
var_dump( $Variablenname) kann verwendet werden, um den Typ der Variablen und den Wert auszugeben.

Datentypen in PHP – Einzelheiten finden Sie im Referenzhandbuch „Sprachreferenz“:
1) 4 Skalar-/Wert-/Basistypen

(1)int/integer:整数  -2147483648~2147483647
(2)float/double:小数  float和double完全一样
  (3)string:字符串
(4)bool/boolean:布尔,只能取值为true / false / TRUE / FALSE

2) 2 zusammengesetzte Typen

(5)array:数组
(6)object:对象

3) 2 andere Typen

(7)null:空
(8)resource:资源

Hinweis:
(1) Der ganzzahlige Wert überschreitet den maximalen Bereich von int (2147483647) und wird automatisch zum flachen Typ
(2) Wenn „true“ von bool per Echo ausgegeben wird, wird es als „1“ ausgegeben, und wenn „false“ per Echo ausgegeben wird, ist es eine leere Zeichenfolge
(3) Zeichenfolge kann in einfache Anführungszeichen eingeschlossen werden/ doppelte Anführungszeichen; subtiler Unterschied: Wenn ein Variablenname in der Zeichenfolge vorhanden ist, wird dieser direkt als Variablenname ausgegeben. Wenn ein Variablenname in doppelten Anführungszeichen steht, wird er als Wert der Variablen ausgegeben - Es gibt keine arithmetische Möglichkeit in doppelten Anführungszeichen: „$a+$b“
(4) Zwei Zeichenfolgen werden mit dem Symbol verkettet

6. Operatoren in PHP

Operatoren in PHP sind in folgende Kategorien unterteilt:
(1) Arithmetische Operatoren: + - * / % ++ --
(2) Vergleichsoperatoren: > && ||. !
(4) Bitoperatoren: << >>
(5) Zuweisungsoperator: = ....
(6) Spleißoperator: .
(7 ) Ternärer Operator: ?:

3. Arithmetische Operatoren


    • / % ++ (Erhöhen um 1) --( Dekrementieren 1)


Hinweis:

(1)+ wird nur für arithmetische Operationen verwendet, nicht verwendet String-Verkettung durchführen!
(2) Wenn + auf eine Zeichenfolge einwirkt, erfolgt eine implizite Konvertierung: Versuchen Sie, die Zahlen in der Zeichenfolge zu analysieren, und zwar so viele wie möglich.
(3) Wenn + auf Boolesch einwirkt, erfolgt eine implizite Konvertierung: true wird in 1 konvertiert, false wird in 0 konvertiert.
(4)% stellt die Restoperation/Modulo-Operation dar. Das Ergebnis von 2018%4 ist 2. Es wird im Allgemeinen verwendet, um zu bestimmen, ob eine Zahl durch eine andere Zahl geteilt werden kann.
(5) Berechnen Sie eine Zahl basierend auf das Original + 1. Es gibt drei Methoden:

$n1 = $n1 + 1;
$n1 ++;   #运算速度更快!
 ++ $n1;
4
=   < <= == != ===(全等于) !==(不全等)
说明: $result = $score1 >  $score2;
 (1)比较运算的结果为 true 或  false  。
 (2)默认情况下,用==比较的话,1和true是相等的;0和false和""是相等的 ——  ==运算符会进行自动的“隐式转换”。
 (3)若比较运算中不希望出现自动的隐式转换,只要类型不同直接判定为不等使用 ===

5.逻辑运算符
 &&(并且/与)    ||(或)      !(取反/非)
 $c = 50;     $m = 80;
 判定语文和数学是否都及格了:   $c>=60  &&  $m>=60
对于&&运算:
true && true  =>  true
false && true  =>  false
true && false  =>  false
false && false  =>  false
 判定语文和数学有一科及格吗:   $c>=60  ||  $m>=60
对于||运算:
true || true  =>  true
false || true  =>  true
true || false  =>  true
false || false  =>  false
 判定语文是否为不及格:    !($c>=60)
对于!运算:
! true  =>  false
! false  =>  true

7.逻辑:短路逻辑

与运算中的“短路”效果:
 false  &&  ?   =>  false        ?将不会被执行
或运算中的“短路”效果:
 true  ||  ?  =>  true             ?将不会被执行

8.位运算符

数字按照二进制(bit位)形式进行运算。
 <<(按位左移) >>(按位右移)
面试题:现在有变量 $num = 5,计算出$num*16的最快方式是:
(a) $num = $num * 16;
(b) $num *= 16;
(c) $num *= 4;
(d) $num << 4;
(e) $num << 16;

结论:一个数字向左按位移动N位,相当于 原数*2^N;
一个数字向右按位移动N位,相当于 原数/2^N;

9.赋值运算符

= += -= *= /= %=
$n = 30;
$n = $n + 5;
$n += 5; //效果等价于上一行
$n = $n - 5;
$n -= 5; //效果等价于上一行

10.字符串拼接运算

. .=
$uname = 'tom';
$uname = $uname . '先生';
$uname .= '先生'; //效果等价于上一行

单目运算符: $a++
双目运算符: $a + $b
三目运算符: $a ? $b : $c

11.三目运算符

?:
语法: 表达式1 ? 表达式2 : 表达式3
含义:(如果...否则...)如果表达式1的值为true,则返回表达式2的值,否则返回表达式3的值
示例: $sex = 1;

    $result =  $sex===0  ?  &#39;女&#39;  :  &#39;男&#39;  ;
    echo $result;

12.程序 = 数据 + 算法

1.算法的基本结构
(1)顺序执行
(2)选择执行
(3)循环执行

2.程序逻辑结构 —— 顺序执行

3.程序逻辑结构—— 选择/分支执行之一
收银台程序 V2.0: 若购物总金额满500,则打八折

选择执行的最基础代码:

if( 条件判定 ){
    //条件判定结果为true时执行的代码
}

语句1;
if( 条件判定 ){
语句2;
}
语句3;
如果条件判定为true,执行顺序: 1=>2=>3
如果条件判定为false,执行顺序: 1=>3

收银台程序 V3.0: 若已付金额足够商品总价格,计算找零并输出;否则输出错误提示

"如果...否则..."逻辑的语法结构:

if( 条件判定 ){
    //条件判定为true时执行的语句
}else {
    //条件判定为false时执行的语句
}

语句1;
if( 条件判定 ){
  语句2;
}else {
  语句3;
}
语句4;
条件判定为true,执行顺序: 1=>2=>4
条件判定为false,执行顺序: 1=>3=>4

关于"if...else....的嵌套问题"有两种编写方法:
(1)    if(  ){

}else {
    if(){
    }else {
    }
}

(2)    if(  ){

}else if(  ){
}else if(  ){
}else {
}

if1 + else ifN + else*1

小结:
(1)  if( ){   }
(2)  if( ){   }else{   }
(3)  if( ){   }else{  if(){}else{}  }
(4)  if( ){   }else if( ){  }... else{  }

4.程序逻辑结构—— 选择/分支执行之二
 switch...case...break选择分支结构:在多个不同“情形下”进行“切换”。
 语法:    switch( 变量名 ){

        case  值1:            #if(变量名==值1)
            语句1;
        case  值2:            #if(变量名==值2)
            语句2;
        ....
        default:                #else....
            语句n;
    }

含义:若指定变量等于值1,则执行语句1;否则若等于值2,则执行语句2.... 否则执行语句n。
 注意:默认情况下,switch若判定了某个相等条件则执行该条件以及后续所有条件中的执行语句 —— 必须配合break关键字使用。

5.程序逻辑结构 —— 循环结构之一
 循环:多次执行相同或相似的代码
 循环二要素: (1)循环体   (2)循环条件
 第一种循环结构:

while( 循环条件判定 ){
    //循环体
}

含义:执行条件判定,若为true,则执行一次循环体;再次执行条件判定.....直到某次执行完循环体,再去执行条件判定为false,则退出循环,继续执行后面的语句

13.循环结构之二 —— do...while...

语法:

do{
    循环主体;
}while( 循环条件 );

while...先判定后执行    do..while..先执行再判定
$i=0;
while($i<5){
echo 'Hello'; $i++;
} $i=0;
do{
echo 'Hello'; $i++;
} while($i<5);
$i=10;
while($i<5){
echo 'Hello'; $i++;
} $i=10;
do{
echo 'Hello'; $i++;
} while($i<5);
while循环主体可能执行0~N次 do..while循环主体可能执行1~N次

14.循环结构之三 —— for... —— 重点掌握

语法:

for(  表达式1 ;  表达式2 ;  表达式3 ){
    循环主体;
}

含义:首先执行且仅执行一次“表达式1”;

再执行“表达式2”的判定,若为true,执行一次循环主体;
再执行一次“表达式3”,再去执行“表达式2”的判定,
若为true继续执行一次循环主体.....  直到为false,退出循环。

总结:
“表达式1”在循环开始前执行一次——一般用于声明循环变量;
“表达式2”在每次主体执行前都执行一次——一般用于执行循环判定条件;
“表达式3”在每次主体执行后都执行一次——一般用于执行循环变量的增减。

$i = 0;
while( $i<5 ){
echo 'Hello';
$i++;
} for( $i=0; $i<5; $i++){
echo 'Hello';
}
while和for的功能一样!只是for更加紧凑!
for循环中的三个表达式都可以为空。

循环中使用break关键字: 打断当前循环,不再执行,跳出循环
for($i=1; $i<10; $i++){
if($i==5){

  break;

}
echo "$i";
}
//1/2/3/4
while(true){ ...break;... } for( ; ; ){ ...break;... }
循环中使用continue关键字:跳过此次循环,继续下一次循环
for($i=1; $i<10; $i++){
if($i==5){

  continue;

}
echo "$i";
}
//1/2/3/4/6/7/8/9

15.PHP中的数据类型:复合类型 —— array

表示一个学生的成绩: $score = 90; #一个标量即可
表示100个学生的成绩:

$score1 = 85;
$score2 = 98;
$score3 = 77;
....

结论:一个标量类型的变量只能存储一个数据;若想一个变量中存储N个值,可以使用复合类型“数组(Array)”
创建一个数组的语法:

$变量名 = [ 值1, 值2, .... 值n ];
$变量名 = [  ];

获取数组中元素的个数/数组的长度:

echo  count($变量名);

操作数组中的某个元素——使用元素的下标/索引(index):

$变量名[下标] = 值;     #修改指定下标处的元素值
echo $变量名[下标];        #输出指定下标处的元素值

向数组中添加新元素:

$变量名[ ] = 值;     #新的元素会自动获取新的下标

思考:创建一个数组,保存一个学子商城中用户的信息,编号、用户名、密码、注册时间、当前是否在线。
$user = [134773434, 'tom', '1232132', 123434434, 1];

       0           1      2          3      4

数据的说明性太差了!

16.PHP中数组分为两种类型:

(1)索引数组(Indexed Array):每个元素的下标是数字

$arr = [&#39;tom&#39;, &#39;mary&#39;, &#39;king&#39;];
$arr = [24, 35, 55, 28, 29];
索引数组适用于“类型相同的多个数据”

(2)关联数组(Association Array):每个元素的下标是字符串

$user = [&#39;uid&#39; =>1234, 'uname'=>'tom', 'regTime'=>1232341343,  'upwd'=>'123234'];</p>
<p>注意:关联数组每个元素的下标都是自定义的字符串!不能使用for循环进行遍历!</p>
<h2>17.循环结构之四 —— foreach循环</h2>
<p>语法:  foreach只用于遍历数组(尤其是关联数组)</p>
<pre class="brush:php;toolbar:false">foreach( $数组名  as  $元素变量名 ){
    //循环主体
}
foreach( $数组名  as  $下标变量名=>$元素变量名 ){
    //循环主体
}

含义:对于数组中的每个元素,都看做是一个指定的变量,对每个这样的变量执行一次指定的循环体
 示例:    $ageList = [20, 23, 21, 25];

    foreach( $ageList  as  $v){
        echo "$v<br>";
    }
    ==================
    $user = ['uid'=>101, 'uname'=>'tom'];
    foreach( $user  as  $v){
        echo "$v<br>";
    }

18.PHP中的预定义数组 —— 难点!

预定义:由PHP解释器自己创建的,程序员不需要声明可以直接使用的。PHP预定义了如下的数组变量:
 $_GET
 $_POST
 $_COOKIE
 $_FILES
 $_REQUEST:保存着客户端提交给服务器的“请求”数据
 $_SESSION
上述变量默认都是 array(0){ }

Web项目中,客户端(浏览器)如何给服务器传数据:

http://127.0.0.1/login.php?uname=tom&upwd=123

PHP服务器会自动把?后面的数据存储到$_REQUEST数组中:

$_REQUEST['uname'] = 'tom';
$_REQUEST['upwd'] = '123';

程序员如何读取客户端提交的数据:

echo  $_REQUEST['uname'];     //tom
echo  $_REQUEST['upwd'];      //123

19.函数基础认识 —— 掌握

Function:功能体/函数,用于封装一段需要反复执行/不易编写的代码 —— 饺子机。
 声明一个函数:

function 函数名( ){
    //函数主体
}

执行/调用一个函数:

函数名( );

声明一个带参数的函数:

function 函数名(参数名1,  参数名2, ... ){
    //函数主体
}

执行/调用一个函数:

函数名( 值1, 值2, ... );

声明函数时指定的参数其实就是变量名——形式参数;调用函数时给出指定的具体的值——实际参数。

声明一个带返回值的函数:

function 函数名( [参数名1,  参数名2, ...] ){
    //函数主体
    return  函数运算的结果值; //应该是整个函数中最后一句
}

执行/调用一个有返回值函数:

$变量名 = 函数名( [值1, 值2, ...] );

使用一个变量接收函数的返回值。

20.PHP预定义函数 —— 访问MySQL数据库必需的函数 ——重点&难点

提示:历史上,PHP官方提供了两套访问MySQL服务器的函数:

mysql_xxxx( )   性能不够优秀
mysqli_xxxx( )    Improved:改进提升版

使用MySQLI函数库访问数据库服务器的步骤(与管理员从命令行中访问数据库的步骤一样):
 (1)连接到数据库服务器

$conn = mysqli_connect(...);

(2)提交SQL语句给服务器执行

$sql = "INSERT/DELETE/UPDATE/SELECT...";
$result = mysqli_query($conn,  $sql);

(3)查看执行结果

if($result===false){   //执行失败
}else{    //执行成功
}

(4)关闭到数据库服务器的连接(可以省略)

mysqli_close( $conn );

21.面试题:$i++和 ++$i 的异同。

$i++:先取值再自加
++$i:先自加再取值
$i = 10;
$j = $i++;      #先取出$i的值(10),赋值给$j;然后$i自加1
echo $i,  $j;      #11, 10
$i = 10;
$j = ++$i;     #先对$i自加1,变为11;再取其值赋给$j(11)
echo $i,  $j;     #11,  11

相关推荐:

关于2018年后端技术分析总结

浅谈2018年后端技术趋势

php学习之为什么说PHP适合做前端JAVA适合做后端?

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