目录
PHP概述
PHP运行环境安装
Web原理简述
PHP 基本语法
特点:
指令分隔符 [;]
注释(和C语言类似)
简单的PHP语句
PHP语法错误:
变量
变量的声明
初始化
赋值
[=]
引用赋值 $c =&$a
变量的释放
变量的命名
可变变量
变量的类型
常量
预定义常量
运算符
算术运算符(见代码)
逻辑运算符
运算符优先级
比较运算符
赋值运算符
算术赋值运算符¶
其他赋值运算符¶
其他运算符
流程控制语句
顺序执行
分支执行
单向分支
双向分支
多向分支
循环语句
while
do while
for(好!)
特殊流程控制语句
九九乘法表
PHP概述
- PHP是一门编程语言,PHP主要目的是允许网络开发人员快速编写动态页面
- 简单来说PHP主要被用于开发各种类型的网站程序
- 细化点说PHP可以用于收集表单数据,生成动态网页,字符串处理,动态输出图像,处理服务端文件,与数据库交互,会话跟踪,处理XML文件,支持大量的网络协议,服务器端的其他相关操作!
- PHP是解释型脚本语言不需要事先编译,运行在服务器端!
- PHP可以运行在windows、linux等各种操作系统上!
专门用于开发网站的
脚本后缀名.php可以与HTML语言进行混编,脚本后缀依然是.php(还可以在PHP代码中输出HTML语言)
解释型语言,不要编译直接运行
弱类型
PHP运行需要环境:
Windows: phpstudy
Linux: 单独安装(不是系统自带的)
PHP运行环境安装
Apache+PHP+MySQL是PHP比较流行的生存环境
LAMP
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引擎解释PHP代码的时候,注释被自动过滤掉了。
为什么HTML代码客户端可以看到源代码?
因为HTML运行环境是浏览器!
简单的PHP语句
1、phpinfo();
2、echo 用于输出简单的变量
3、var_dump(); 用于输出变量值及其变量类型
PHP语法错误:
Error 会结束脚本执行
Warning 只提示,不影响执行
Notice 只提示,不影响执行
变量
变量的声明
不需要声明变量,但要初始化
初始化
给变量初次赋值,或者变量的默认值
赋值
[=]
根据实验说明:PHP脚本是顺序执行的
引用赋值$c =&$a
相当于给$a起了一个别名,$c值的改变,$a也随之改变
<?php$a=10;$b=$a;$b=$b+1;echo $a; //10echo "|";echo $b; //11echo "<hr />";$c=&$a; //$a和$c实际上指向的是同一块内存空间(相当于给$a起了一个别名)$c=$c+1;echo $a; //11echo "|";echo $c; //11?>
变量的释放
unset()
<?phpecho "This is var.php";echo "<hr />";echo "<span style='color:pink;background-color:blue'>123</span>";?>//一个页面中可以插入多个PHP标记(不能混用)<hr /><?php//PHP在使用变量的时候不需要进行变量声明,//如果一个变量没有初始化,内存中就没有这个变量。echo $name;$name="AJEST";echo "<br />";echo $name;echo "<br />";unset($name); //释放了变量echo $name;?>
变量的命名
@ 以$符号开头
@ 严格区分大小写
@ 字母|数字|下划线,不能以数字开头
$name1
$my_name
$_my_name
$1_name 错误
@ 尽量不要使用php关键字作为变量名
可变变量
<?php$name="hello";$$name="world";echo $name; //输出helloecho "<br />"echo $$name; //worldecho $hello;//实际上$hello是$$name?>
变量的类型
布尔类型
true false,其他均会被认为true
以下所有内容会被当做false
布尔值false
0
浮点型0.0
空白字符串和字符串0
没有成员的数组
NULL
var_dump(); 用于输出变量值及其变量类型
int 存储整数
float 存储小数 3.14
字符串 string
字符串的定义:
@ ' '
@ " "
@ 定界符
注意:
@单引号定义的字符串中出现单引号要转义[\]
@单引号定义的字符串中,[$] 符号原样输出
@双引号定义的字符串中,[$] 是变量的开始,整体变量名用{ }括起来
@单双引号定义的字符串中输入的特殊字符包括 [',",$...]需要转义
@定界符开始和结束后面不能有任何字符包括空白字符和注释
数组
对象 不讲
常量
不变的量
定义 define("NAME","GGG");
直接使用即可
预定义常量
常量名 常量值
__FILE__ 当前的文件名(文件名带路径)
__LINE__当前的行数
__FUNCTION__ 当前的函数名
__CLASS__ 当前的类名
__METHOD__ 当前的对象的方法名
PHP_OS UNIX或WINNT等
PHP_VERSION 当前的PHP服务器的版本
DIRECTORY_SEPARATOR \或/ 根据操作系统决定目录的分隔符
运算符
算术运算符(见代码)
取模就是取余数。
逻辑运算符
php手册
非 !
与 and 或者 &&
或 or ||
异或 xor 不同为真,相同为假
与运算的优先级高于或运算。
赋值运算符的优先级高于逻辑运算符
运算符优先级
括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
比较运算符
当两个操作对象都是数字字符串, 或一个是数字另一个是数字字符串, 就会自动按照数值进行比较。 此规则也适用于switch语句。 当比较时用的是===
或!==
, 则不会进行类型转换——因为不仅要对比数值,还要对比类型。
比较参与运算的单元是否相同,相同为真,不同为假
<?phpvar_dump(0 == "a"); // 0 == 0 -> truevar_dump("1" == "01"); // 1 == 1 -> truevar_dump("10" == "1e1"); // 10 == 10 -> truevar_dump(100 == "1e2"); // 100 == 100 -> trueswitch ("a") {case 0:echo "0";break;case "a": // never reached because "a" is already matched with 0echo "a";break;}?>
赋值运算符
算术赋值运算符¶
其他赋值运算符¶
其他运算符
$a= 10>20 ? 10:20(三元运算符)
`` 将字符串当作命令执行(不是单引号,是Tab上面的那个键)
@ 屏蔽提示,警告
<?php$a=10<20?10:20;echo $a;echo "<hr />";echo `ping `;?><hr /><?phpecho `whoami`;echo "<hr />";echo @$name; //直接写$name会报Notice,在前面加一个@,屏蔽警告、提示?>
流程控制语句
顺序执行
PHP代码执行的时候,依次顺序执行
分支执行
单向分支
if(判断条件){执行语句块}
双向分支
if(判断条件){执行语句块1}else{语句块2}
多向分支
if(判断条件){执行语句块1}elseif{语句块2}elseif{语句块3}....
elseif
switch
case
default
case后面的语句是不需要用大括号括起来的!
循环语句
while
当满足条件时,执行
计数器,变量
判断条件
do while
先执行再判断
for(好!)
特殊流程控制语句
break; 跳出本层循环
break 2; 跳出两层循环
continue; 跳过本次循环
die() 结束本次脚本执行
exit() 结束本次脚本执行