LAMP概述:Linux+Apache+MySql+Php。
PHP数据类型:
变量($i):四种标量类型,布尔型,整型,浮点型,整型。
两种符合类型:数组,对象。‘
两种特殊数据类型:资源,null。
常量:define("name",value) 变量名称name前面没有$符号
PHP外部变量与环境变量:
外部变量:
$_Get
$_Post
$_Request
$_Files
$_Cookie
$_Sission
环境变量:
$_Server
$_ENV
PHP运算符:
PHP流程控制之分支结构:
if...else...
switch...case...default...
try...catch...
PHP流程控制之循环结构:
while(){
}
do{
}while(true)
for(,,){
}
PHP中函数的声明(有返回值成为函数,无返回值成为一个过程):
函数是一段完成指定任务的已命名代码
function 函数名(参数1,参数2...){
函数体
return 返回值
}
函数中可能使用的关键字 static global $Global["变量名"]
function_exists(函数名):判断函数是否存在
PHP中字符串声明的方法:
双引号:可以在双引号里执行变量,可以使用转义字符
单引号:不能在双引号里执行宾利,可以使用部分转义字符
反引号:在反引号里面执行服务器命令
定界符:$str=<<<here.....
.................here;和双引号一样,但可以在里面使用任何多的是双引号。
PHP中的字符串函数:
echo():也可写成 echo"Hello World"
print():具有返回值的
die():输出后退出程序
printf():格式化输出,类似于C语言里面的写法
sprintf():格式化保存
print_r():输出数组
var_dump:输出字符串类型
ltrim(),rtrim(),trim(),
strrev():字符串反转
explode():字符串分割
implode():字符串联合
对URL字符串的解析:parse_str(),parse_Url(),
对Url编码处理的函数:rawurlencode(),urlencode(),urldecode()
构造查询字符串:http_build_query()
PHP中的数组:
数组是一个可以存储一组或一系列数值的变量
1.可以存储任何类型的数据
2.长度可变
PHP数组分为两类:
1.索引数组:数组的索引是整数,从0开始
2.关联数组:数组以字符串作为索引值
$arr[0]=100;$arr[]=200(可以不加下标)
count($arr):正在占有的空间就是正在的值。
$arr=array(1,2,"a","b")
$arr=array("age"=>19,2,"name"=>"张三",true)
echo $arr["name"] //张三
注:关联数组的下标不会影响到索引数组的下标
二维数组:
$arr=array(array(1,2,3),array("a","b","c"))
数组的变量(foreach,while(),list():将数组转换为变量来使用,each()):
$arr=array(1,2,3,"abc"=>"one","two",100,"three");
foreach($arr as $value){
echo $value
}
while($a=each($arr)){
echo $a["key"];//$a[0]
echo $a["value"] //$a[1]
}
$one=array(1,2,3)
list($a,$b,$c)=$one //$a=1,$b=2...
数组相关处理函数:
curren(): next(): end(); rest(); count(); sizeof(); array_change_key_case();array_chunk(); extract();compact();sort();sort();
PHP面向对象:
内存分为四块:
1.初始化静态字段。
2.栈内存(空间小,访问速度快)
3.堆内存(空间大,范文速度慢,堆里面的数据不能直接访问)
4.代码段
特殊的引用关键字$this
构造方法(在创建一个对象后自动调用) 1.function 类名(){} 2. function __construct(){}// PHP5里面的写法(若两个都有,则使用function_construct{}这个)
析构方法(在对象消失前自动调用) function __destruct(){}
封装性(private):__set($proName) __get($proName,$value):在直接调用私有属性时调用
__isset():判断对象里的成员是否存在(不是私有的情况)
__onset():删除变量,在内存中删除
继承(extends.不支持多继承):
方法的重载:php中不支持方法的重载,只能覆盖父类中相同的方法
访问权限:private procted(本类或子类中使用) public
面向对象中常用的关键字:
final:只能定义类和方法,定义类,该类不能够被继承。定义方法,该方法不能被覆盖
static:属于类而不属于对象实例 ,通过类名来访问。类名::$成员属性 (类名也可以使用.self)
const:是一个在类里面把定义成员属性为常量的关键字 。类名::成员属性(没有$符号)
面向对象中常用的魔术方法:
__tostring():用于打印对象的形象,输出对象时自动调用
__clone():在调用clone()方法时自动调用
__call($funName,$argus):当调用不存在的函数时自动调用
__auto($className) :如果在页面中用到类了,就会自动调用
对象的串行化(Serialize()):将对象转换成二进制字符串
对象的反串行化(Unserialize):将二进制字符串转换成对象
部分序列化(__sleep),部分反序列化(__wakeup)
抽象方法和抽象类(abstract)
接口(interface)
继承接口(implements)