1、PHP基本语法
(1)html和PHP混编
(2)一个语句以 ; 分号结束
(3)定义变量要以$符号开头
(4)php的变量的数据类型,是变化的,php变量的数据类型是由上下文决定的。
(5)php区分英文大小写
(6)一个有效的变量名要以字母或下划线开头,后面跟上任意数量的字母、数字或下划线
注释:1、多行注释 /* */
2、单行注释 //
3、#开头,单行注释
2、PHP基本数据类型
(1)基本数据类型:
整型 integer
1、整型值可以使用十进制,十六进制"0x",八进制0打头
2、php不支持无符号整数,即php中的整数都是有符号的
(php中,一个整数,一般占四个字节(与平台有关),一个字节占8bit(8位),最高位是符号位,0为整数,1为负数)
3、通过PHP_INT_SIZE可以显示在当前机器中一个整数几个字节。 echo PHP_INT_SIZE;
(可以表示的最大值用PHP_INT_MAX查看)
4、如果一个整数的范围超过最大范围,自动转为float型
小数(浮点)类型 float/double
浮点数的字长和平台相关,通常最大值是1.8e308(1.8乘以10的308次方)并具有14位十进制字的精度。(从左边起第一个非零的数,开始计入精度位数)
布尔类型 boolean
1、要指定一个布尔值,使用关键字TRUE或FALSE,两个不区分大小写
2、以下值会被当做false来对待:
布尔值FALSE本身,整数型0,浮点型0.0,空字符串,以及字符串"0",没有任何元素的数组,没有成员变量的对象,特殊类型null,
读取没有任何标记(tags)的xml文档生成的SimpleXML对象
字符串型 String
1、一个字符串是由一个系列的字符组成,一个字符就是一个字节。
2、PHP对字符串的长度限制只和运行PHP程序这台机器的内存大小有关,即php字符串可以足够大。
3、字符串常见的定义方法为单引号和双引号
$_i = 90;
$_user1 = "hello$_i";
$_user2 = 'hello$_i';
echo $_user1; //输出:hello90
echo $_user2; //输出:hello$_i由此,当一个变量包含在双引号中时,会输出它的值,而包含在单引号中只输出字符串本身.
(2)特殊数据类型:
null
资源类型 resource
(3)复合数据类型:
数组 array
对象 object
PHP类型的自动转换
变量的类型由PHP根据该变量的上下文在运行时决定,可以通过var_dump(变量1,变量2,......);
3、PHP表达式 —— 任何有值的东西
(1)算数运算符
自加:++ 自减:--
$_a = $_b++;
echo $_a; //输出:1
$_c = 1;
$_a = $_c;
$_c = $_c + 1;
echo $_a; //输出:1
其他: += , -= , /= , %=比较运算符: == 判等=== 全等,值相等,类型相同,返回true!== 值不相等,或类型不同,则返回true
(2)逻辑运算符
与: $_a and $_b $_a 和$_b都为true,则表达式为true
$_a && $_b $_a 和$_b都为true,则表达式为true
或:$_a or $_b $_a 或$_b为true,则表达式为true
$_a || $_b $_a 或$_b为true,则表达式为true
异或:$_a xor $_b $_a 和$_b不相同,则表达式为true
取反:!$_a 如果$_a = true ,则返回false
特别注意:运算符的优先级顺序
||的优先级高于or,&&的优先级高于or
= 的优先级比 or,and都高
(3)三元运算符
表达式:(expr1) ? (expr2) : (expr3)
规则:在expr1求值为TRUE时值为expr2,在expr1求值为FALSE时值为expr3。
(4)字符串运算符
有两个字符串运算符,使用连接运算符(".").$_a = 10; $_b = 90; echo $_a . $_b ; 输出 1090(5)类型运算符
instanceof用于确定一个PHP变量(对象)是否属于某一类class的实例
4、PHP流程控制
顺序流程控制,就是不加控制的流程,顺序执行。
分支控制,有选择地执行代码。
(1)分支控制流程
1、if语句
(1)单分支:if(条件表达式) {若干语句}(2)双分支:
if(条件表达式) {
若干语句
}else {
若干语句
}
(3)多分支:if(条件表达式) {若干语句
}if else(条件表达式) {若干语句}(可多个)else {若干语句
}
2、switch语句 同JAVA
switch(表达式) {
case 常量1 : 若干语句;break;
......
default : 若干语句; (可选)
}
3、if与switch的区别
if是对某个范围的判断,而switch是对一个点的判断。应用场景:当分支就是几个点的时候,应当使用switch,如果你的分支是几个区域(范围)的判断,则考虑使用if。(2)循环控制流程
1、for循环
for(循环初值 ; 循环条件 ; 步长) {
循环语句
}
例子:
for($i=0;$i < 10 ;$i++) {
echo "<br>$i";
}
2、while循环
while(循环条件) {
循环语句
}
例子:
$j = 0;
while($j < 10) {
echo "<br>$j";
$j++;
}
3、do-while循环
do{
循环语句
}while(循环条件)
例子:
$l = 6;
do{
echo "<br><br>$l";
}while($l>7);
4、break
(1)break语句默认跳出1层;
(2)break语句后面带的数字,不能超过实际可以跳出的循环层数,否则会报错。
例: break 3; #跳出3层循环
5、continue
continue在循环结构中用来跳过本次循环中剩余的代码,并在条件求值为真时开始执行下一次循环
,continue可接受一个可选的数字参数决定跳过几重循环,到循环结尾。
默认: continue 1;
6、goto 仅在php5.3及以上版本有效
通过goto语句我们可以将程序跳转到指定的地方执行。
例子:
goto a;
echo "aa";
a: echo "bb";
执行结果:bb
5、常量
可以理解是一种特殊的变量,一旦被定义,就不能再改变或取消定义。常量与变量的区别:(1)常量前面没有美元符号($);(2)常量通过define()函数定义,而不能通过赋值语句。(3)常量可以在任何地方定义和访问,而变量有作用域。(4)常量一旦定义就不能被重新定义或者取消定义。(5)常量的值是标量(String,Integer,float,boolean)
例子: 常量的命名为全大写字母<?php
define("DBHost","192.168.1.8");echo DBHost;const DBPort = 3306; #PHP5.3后可使用echo '<br>'.DBPort;
?>
6、函数
为完成某一功能的程序指令(语句)的程序,称为函数。1、函数的使用
function 函数名(参数1,参数2......) {
函数体(语句)return 返回值;(可选)
}使用方法:require "functions.php"; 引入含有count方法的页面$res = count($num1,$num2);
php执行时,一旦遇到函数的调用,就会开辟一个新栈,执行该函数的代码,执行完毕后,返回继续执行后续代码。注意:各栈的变量时相互独立的。
2、函数的深入讨论
(1)函数的参数列表可以是多个
可变参数函数:test(1,2,3);
function test() {
echo func_num_args(); //输出参数数量
$varArray = func_get_args(); //获取参数,返回参数数组
foreach($varArray as $value) {
echo '<br>'.$value;
}
}
(2)参数的数据类型可以是任意的类型(array,integer,float,boolean,String,object)
(3)函数的命名跟自定义变量一样(不区分大小写)
(4)一个自定义函数中的变量是局部的,函数外不生效。
(5)使用global全局变量的时候,可使用函数外的变量。
例子:
$a = 12;
function test() {
global $a; //表示在function test范围内使用函数外面的$a
$a = 45;
}
test();
echo $a; //输出45
(6) 销毁指定的变量 unset(变量名) 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁
例子:
$a = 12;
function test($a) {
unset($a); //表示不在test函数范围内,再使用$a,后面需要全新定义
$a = 24;
echo $a; //输出24
}
test($a);
echo $a; //输出12
(7)函数默认值
例子:
function test($a,$b = 2) {
$res = $a + $b;
echo $res;
}
$e = 32;
$f = 55;
test($e); //输出34
test($e,$f); //输出87
(8)PHP默认是值传递,如果需要引用传递,使用:&变量名
例子:
$b = 32;
function test(&$b) {
$b = 24;
}
echo $b; 输出:32
7、引入页面
1、引入其他页面到当前页面
(1)引入页面的方法
1、require 'b.php' ;2、$b = 'b.php'; require $b;3、require('b.php');(2)require() 和 require_once()细节
一般放在php页面的最前面,php在执行前,就读入require所引入的文件,一旦出现错误,则退出程序。
区别:前者遇到文件就引入,后者会判断是否已经引入过,避免重复引入。
1、节省资源 2、可以避免重复定义的错误
注意:一个php文件中,函数名不能重复,引入的函数同样不能重复。
2、包含其他页面到当前页面
(1)包含其他页面的方法
1、include('b.php')2、include 'b.php'3、$b = 'b.php'; include $b;(2)include() 和include_once()区别是: include_once()可以避免二次包含
3、require和include的区别
include如果出现了错误,会继续执行。
require如果出现错误,则会终止程序。