作者:爱白嫖的小白
链接:https://www.zhihu.com/question/32040809/answer/2451693888
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

PHP

一门编程语言

运行在服务器端

专门用户开发网站的

脚本后缀名.php

与HTML语言进行混编,脚本后缀依然是.php

解释型语言,不要编译直接运行

PHP运行需要环境:

Windows phpstudy

Linux 单独安装

Web 原理简述

1、打开浏览器

2、输入url

3、显示页面

PHP 基本语法

PHP 语言标记

开始标记 <?php

结束标记 ?>

特点:

1、<?php?>这之间就表示进入PHP模式,在开始和结束处之外的内容都会被PHP解析器忽略

2、可以直接嵌入到html代码中,并且可以嵌入到html代码中的任何地方

3、在一个html文档中可以嵌入任意多个PHP标记

4、文件末尾的PHP代码结束标记可以不要,在一些情况下省略掉更好

指令分隔符 [;]

一个php语句必须(建议)要用分号结束

注释(和C语言类似)

单行注释 //

多行注释 /* */

注意

php代码中注释,不会显示在浏览器的源代码中

php运行环境是服务器,我们浏览器看到的是PHP 引擎运行PHP代码后的执行结果

简单的PHP语句

1、phpinfo();

2、echo 用于输出简单的变量

3、var_dump(); 用于输出变量值及其变量类型

变量

变量的声明

不需要声明变量,但要初始化

初始化

给变量初次赋值,或者变量的默认值

赋值

[=]

根据实验说明:PHP脚本是顺序执行的

引用赋值 $c =&$a

相当于给$a起了一个别名,$c值的改变,$a也随之改变

变量的释放

unset()

变量的命名

@以$符号开头

@严格区分大小写

@字母|数字|下划线,不能以数字开头

$name1

$my_name

$_my_name

$1_name 错误

@尽量不要使用php关键字作为变量名

可变变量

  1. <?php

2. $name=”hello”;

3. $$name=”world”;

4. echo $name;

5. echo “<br />”;

6. echo $hello;//$$name;

7. ?>

变量的类型

布尔类型 两个 true false,其他均会被认为true

以下所有内容会被当做false

布尔值false

0

浮点型0.0

空白字符串和字符串0

没有成员的数组

NULL

int 存储整数

float 存储小数 3.14

字符串 string

字符串的定义

@ ’ ‘

@ ” “

@ 定界符

注意:

@单引号定义的字符串中出现单引号要转义[\]

@单引号定义的字符串中,[$] 符号原样输出

@双引号定义的字符串中,[$] 是变量的开始,整体变量名用{}括起来

@单双引号定义的字符串中输入的特殊字符包括[‘,”,$…]需要转义

@定界符开始和结束后面不能有任何字符包括空白字符和注释

数组

对象 不讲

常量

不变的量

定义

define(“NAME”,”GGG”);

直接使用即可

预定义常量

常量名 常量值

__FILE__ 当前的文件名

__LINE__ 当前的行数

__FUNCTION__ 当前的函数名

__CLASS__ 当前的类名

__METHOD__ 当前的对象的方法名

PHP_OS UNIX或WINNT等

PHP_VERSION 当前的PHP服务器的版本

DIRECTORY_SEPARATOR \或/ 根据操作系统决定目录的分隔符

运算符

算术运算符(见代码)

逻辑运算

非 !

与 and &&

或 or ||

异或 xor 不同为真,相同为假

与运算的优先级高于或运算。

比较运算

比较参与运算的单元是否相同,相同为真,不同为假

==

===

>

>=

<

4<=

!=

!==

<>

字符串运算符

.

赋值运算符

=

+=

-=

*=

/=

%=

.=

.

其他运算符

?: 三元运算符

$a = 10 > 20 ? 10 : 20

“ 将字符串当作命令执行

@ 屏蔽提示,警告

运算符的优先级

PHP 的语法错误

Error 结束脚本执行

Warr~ 只提示,不影响执行

Notice 只提示,不影响执行

流程控制

顺序执行

PHP代码执行的时候,一次顺序执行

分支执行

单向分支

if(判断条件){执行语句块}

双向分支

if(判断条件){执行语句块1}else{语句块2}

多向分支

elseif

switch

case

default

循环语句

while

当满足条件时,执行

计数器,变量

判断条件

do while

先执行再判断

for

特殊流程控制语句

break; 跳出本层循环

break 2; 跳出两层循环

continue; 跳出本次循环

die()

exit() 结束脚本

源码附执行结果

info.php

  1. <h1 style=”color:red”>This is info.php!</h1>

2. <?php

3. /*这是一个测试页面

4. 这部分代码是注释*/

5. phpinfo();//这是php探针

6. ?>

7. This is the end of info.php!

war.php

1. <?php

2. echo “This is var.php”;

3. echo “<hr />”;

4. echo “<span style=’color:red;background:blue’>123</span>”;

5. ?>

6. <hr />

7. <?php

8. echo $name;

9. $name=”ggg”;

10. echo “<hr />”;

11. echo $name;

12. echo “<br />”;

13. unset($name);//释放变量

14. echo $name;

15. ?>

$$.php

1. <?php

2. $name=”hello”;

3. $$name=”world”;

4. echo $name;

5. echo “<br />”;

6. echo $hello;//$$name;

7. ?>

&$a.php

1.<?php

2.$a = 10;

3.$b = $a;

4.$b = $b+1;

5.echo $a;//10

6.echo “|”;

7.echo $b;//11

8.echo “<hr />”;

9.$c = &$a;

10.$c = $c+1;

11.echo $a;//11

12.echo “|”;

13.echo $c;//11

14.?>

bool.php

1. <?php

2. $man=true;

3. $woman=false;

4. echo $man;

5. echo “<hr />”;

6. echo $woman; //echo 输出false时,输出空白。

7. echo “<hr />”;

8. var_dump($man);

9. var_dump($woman);

10.

11. ?>

string.php

1. <?php

2. $name=”ggg”;

3. $str=’$name,let\’s go ‘;

4. var_dump($str);

5. ?>

6. <hr />

7. <?php

8. $str=”{$name},let’s go\$”;

9. var_dump($str);

10. ?>

11. <hr />

12. <?php

13. $str=<<<HTML

14. <span style=”color:red;background-color:black”>This is DJF[‘”$%]</span>

15. HTML;

16. var_dump($str);

17. ?>

define.php

1. <?php

2. define(“NAME”,”GGG”);

3. var_dump(NAME);

4. echo “<hr />”;

5. echo __FILE__;

6. echo “<hr />”;

7. echo __LINE__;

8. echo “<hr />”;

9. echo PHP_VERSION;

10. echo “<hr />”;

11. echo DIRECTORY_SEPARATOR;

12. ?>

ssysf.php(算数运算符)

1. <?php

2. $a = 10;

3. $b = 5;

4. $c = -$a;

5. echo $c;

6. echo “<hr />”;

7. $c = $a+$b;

8. echo $c;

9. echo “<hr />”;

10. $c = $a-$b;

11. echo $c;

12. echo “<hr />”;

13. $c = $a*$b;

14. echo $c;

15. echo “<hr />”;

16. $c = $a/$b;

17. echo $c;

18. echo “<hr />”;

19. $c = $a%$b;

20. echo $c;

21. echo “<hr />”;

22. echo $a++;//先输出,再自增

23. echo “<hr />”;

24. echo ++$a;//先自增,再输出

25. ?>

ljysf.php(逻辑运算符)

1. <?php

2. $a = true;

3. $b = false;

4. //$c = !$a;

5. //var_dump($c);

6. //$c = $a and $b;

7.

8. /*

9. var_dump($c);//true

10. var_dump($c = $a and $b);//false

11. var_dump($c = ($a and $b));//false

12. */

13.

14. //$c = ($a || $b);

15. //var_dump($c);

16.

17. $c = ($a xor $b);

18. var_dump($c);

19. ?>

bjysf.php(比较运算符)

1. <?php

2. $a = 0;

3. $b = false;

4. $c = 0.0;

5. $d = 1/3;

6. $e = 2/6;

7. $f = true;

8. $g = 2;

9. echo ‘$a==$b’;

10. var_dump($a == $b);

11. echo “<br />”;

12. echo ‘$a===$b’;

13. var_dump($a === $b);

14. echo “<br />”;

15. echo ‘$a!=$b’;

16. var_dump($a != $b);

17. echo “<br />”;

18. echo ‘$a!==$b’;

19. var_dump($a !== $b);

20. echo “<br />”;

21. echo ‘$a>$g:’;

22. var_dump($a > $g);

23. echo “<br />”;

24. echo ‘$a<$g:’;

25. var_dump($a < $g);

26. ?>

zfcysf.php(字符串运算符)

1. <?php

2. $name = “GGG”;

3. $hello = “Hello”;

4. $num = “3.14”;

5. echo $num.$hello.”,”.$name.”.”.”;”.’123456′;

6.

7. ?>

qtysf.php(其他运算符)

1. <?php

2. $a = 10<20?10:20;

3. echo $a;

4. echo “<hr />”;

5. echo `whoami`;

6. echo “<hr />”;

7. echo @$name;

8. ?>

1.php(顺序)

1. <?php

2. $name = “GGG”;

3. echo $name;

4. $name = “HJ”;

5. echo $name;

6. ?>

2.php(单分支)

1. <?php

2. $grade = 59.9;

3. if($grade > 60){

4. echo “pase”;

5. }

6.

7. ?>

3.php(双分支)

1. <?php

2. $grade = 60;

3. if($grade >= 60){

4. echo “pase”;

5. }

6. else{

7. echo “sorry”;

8. }

9. ?>

4.php(多分支elseif)

1. <?php

2. $grade = rand(0,100);

3. echo “Your grade is “.$grade.”:”;

4. if($grade >= 90){

5. echo ‘A’;

6. }

7. elseif($grade >= 80){

8. echo ‘B’;

9. }

10. elseif($grade >= 70){

11. echo ‘C’;

12. }

13. elseif($grade >= 60){

14. echo ‘D’;

15. }

16. else{

17. echo ‘sorry’;

18. }

19. ?>

5.php(多分支switch)

1. <?php

2. $day = rand(1,7);

3. switch($day){

4. case 1:

5. echo ‘Monday’;

6. break;

7. case 2:

8. echo ‘Tuesday’;

9. break;

10. case 3:

11. echo ‘Wednesday’;

12. break;

13. case 4:

14. echo ‘Thursday’;

15. break;

16. default:

17. echo ‘What?’;

18. }

19. ?>

6.php(while)

1. <?php

2. $i=0;

3. while($i<100){

4. echo ++$i.” “;

5. }

6. ?>

7.php(do while)

1. <?php

2. $i=0;

3. do{

4. echo ++$i.” “;

5. }while($i<11)

6. ?>

8.php(for)

1. <?php

2. for($i=0;$i<=5;$i++){

3. echo “The number is {$i}.<br />”;

4. }

5. ?>

9.php(break/break2)

1. <?php

2. /*

3. for($i=0;$i<5;$i++){

4. echo “i=”.$i.”<hr />”;

5. for($j=0;$j<5;$j++){

6. echo “j=”.$j.”<br />”;

7. if($j==3)

8. break;

9. }

10. }

11. */

12. for($i=0;$i<5;$i++){

13. echo “i=”.$i.”<hr />”;

14. for($j=0;$j<5;$j++){

15. echo “j=”.$j.”<br />”;

16. if($j==3)

17. break 2;

18. }

19. }

20. ?>

10.php(continue)

1. <?php

2. for($i=0;$i<3;$i++){

3. echo “i=”.$i.”<hr />”;

4. for($j=0;$j<3;$j++){

5. if($j==0){

6. echo “passing<br />”;

7. continue;

8. }

9. echo “j=”.$j.”<br />”;

10. }

11. }

12. ?>

11.php(exit()/die())

1. <?php

2. for($i=0;$i<3;$i++){

3. echo “i=”.$i.”<hr />”;

4. for($j=0;$j<3;$j++){

5. if($j==0){

6. echo “passing<br />”;

7. //die();

8. exit(“The end !”);

9. }

10. echo “j=”.$j.”<br />”;

11. }

12. }

13. ?>

12.php(乘法口诀)

1. <?php

2. for($i=1;$i<=9;$i++){

3. for($j=1;$j<=$i;$j++){

4. echo “{$i}*{$j}=”.$i*$j.” “;

5. }

6. echo “<br />”;

7. }

8. ?>