PHP和MySQL开发学习笔记
2020-12-16 15:08:36 0 举报
AI智能生成
php和mysql笔记大全
作者其他创作
大纲/内容
一,PHP基础
注释
多行/*..............*/
单行//或#
表单变量<form aciton
$_GET[name]
$_POST[name]
$_REQUEST
PHP数据类型
整数
浮点数
字符串
布尔值
数组
对象
常识
字符串的连接
变量命名规则
长度不限
不能以数字开头,区分大小写
不用声明可以直接使用
类型转换
可变变量
常量
理解变量作用域
内置超级全局变量可在脚本所有地方使用
常量一旦声明全局可见,函数内外可用
在一个脚本声明的全局变量在整个脚本中可见
函数内部使用的变量为全局时,名称要与全局变量名称一致
函数内部创建的静态的变量无法在函数外可见
函数内创建变量是函数内部的,函数终止时变量就不存在了
转义字符
\n换行\r回车
操作符
算术操作符
加+
-减
*乘
/除
%取余
字符串操作符.
赋值操作符=
赋值运算返回值
复合赋值操作符
$a += $b
$a -= $b
$a *= $b
$a /= $b
$a % $b
$a . $b
前置后置递增递减运算符
引用操作符
比较操作符
等于操作符
其他比较操作符
逻辑操作符
且
或
非
异或
位操作符
&且
|或
~非
^异或
<<左位移
>>右位移
其他操作符
,逗号
new
->
三元操作符
错误抑制操作符@
执行操作符
数组操作符
联合+
等价==
恒等===
非等价!=
非恒等!==
类型操作符instanceof
了解函数
number_format($a,2)
使用可变函数
测试设置变量类型
gettype($a)
settype($a,设置类型)
测试变量类型函数
is_array()
is_double()
is_int()
is_string()
is_bool()
is_Object()
is_resource()
is_null()
is_scalar()
is_numeric()
is_callable()
测试变量状态
isset($a)
unset($a)
empty()
条件语句
if语句
else语句
elseif语句
switch语句
循环语句
while循环未知次数
do{....}while()循环
for循环固定次数
foreach数组循环
从脚本中跳出
break
continue
exit
文件读写储存
文件处理
fopen('文件名','模式')
fwrite(文件,'内容')
strlen(文件)
fclose(文件)
feof(文件)
读取一行数据
fgets(文件,读取最大长度)
fgetss(文件,读取长度,要过滤的字符)
fgetcsv(文件,长度,定界符)
读取整个文件
readfile(文件)
fpassthru(文件)
file()
读取一个字符fgetc()
fread()读取任意长度
其他文件函数
file_exists(文件)
filesize()
unlink()
文件指针定位
rewind()
fseek($fp,B,A)
ftell()
文件锁定flock()
推荐使用数据库读取操作
使用普通文件的问题
文件变大访问非常慢
查找特定一组比较困难
处理并发访问有问题
从文件中间插入删除困难
文件访问权限单一,需要多级别会员
RDBMS
访问速度块
容易查找检索特定条件
具有内置的处理并发访问的机制
可以随机访问数据
具有内置的权限系统
php的SQLite扩展
数组
数组
数字索引数组
非数字索引数组
多维数组
二维数组
数字可以用双重for循环
二维关联还可以用for循环加$[i][key]
可以用for[$i]然后用list($k,$v)=each($a[$i])循环
三维数组
可以先用两个for循环
如果里面数组是数字索引
如果里面数组为关联索引
数组操作符
$a+$b
$a==$b
$a===$b
$a!=$b
$a!==$b
数组排序
排序
sort()
asort()
ksort()
反向排序
rsort()
arsort()
krsort()
range()
多维数组的排序
usort(数组,'比较函数')
uasort(数组,'比较函数')
uksort(数组,'比较函数')
反向排序没有对应的rsort版本
shuffle()
array_reverse()
数组指针
reset()
数组函数
array_push()
array_pop()
file($a)
count($a)
explode(定界符,字符串)
intval()
array_walk($a,函数)
sizeof()
array_count_values()
extract(数组,冲突咋办)
EXTR_OVERWRITE
EXTR_PREFIX_ALL
还有其他参数,上面最常用
循环访问数组
for循环
foreach
each()
list($key,$value)
关于指针
each()
next()
current()
reset()
end()
pos()
prev()
字符串操作与正则表达式
字符串
其他
isset()
empty()
格式化
trim(字符传,diy过滤符号)
ltrim()
rtrim()
nl2br($a)
print()输出
printf()
sprintf()
改变字母大小写
strtoupper()
strtolower()
ucfirst()
ucwords()
格式化字符串准备存储MYSQL
addslashes()
stripslashes()
get_magic_quotes_gpc()
数字类型格式化
浮点数
doubleval(浮点数)
连接与分割
explode(定界符,字符串)
implode(定界符,数组)
join()
strtok()
substr($str,开始,截止位置)
字符串比较
排序
strcmp($str1,$str2)
strcasecmp()
strnatcmp()
strnatcasecmp()
strlen()
匹配替换string
查找字符串
strstr(字符串,搜的关键字)
stristr()
strchr(str,keywords)
strrchr()
查找字符串的位置
strpos(字符串,关键字)
strrpos
有点问题
替换字符串
str_replace(a,abcd,$str)
substr_replace($str,"X",-1)
正则表达式
[a-zA-Z0-9]
.at
[^abcd]
*有没有a都行
+至少有一个a
上面可以组合应用括号括起来()
{1,3}最少重复1次最多3次
匹配开头结尾
开头^b
结尾$,例如com$
com|edu|net或or
匹配特殊符号用转义符\
正则符号一览表
用正则查找字符串
ereg(表达式,字符串,保存的数组)
eregi()
用正则替换字符串
ereg_replace(表达式,XXX,字符串)
eregi_replace()
用正则分割字符串
split(正则,字符串,最大个数)
代码重用与函数编写
代码重用的好处
成本小
可靠性
一致性
使用require()和include()函数
require()
require_once()
include()
include_once()
配置文件php.ini
auto_prepend_file
auto_append_file
apache服务器对某个目录每个文件的引入
函数介绍
调用函数
调用未定义函数
函数名称
定义函数
使用参数
帮助器函数
func_num_args()
func_get_arg(0)
func_get_args()
理解作用域
函数内部声明变量
函数外部声明变量
特殊超全局变量$_GET之类
require和include引入的变量
global 指定函数内全局作用域
unset(变量)
参数引用变量用符号&
返回值
return在函数内停止执行函数
return 值
注意false和0的问题
实现递归
使用命名空间
面向对象
面向对象的概念
类,属性,和操作方法
类
构造函数__construct()
析构函数__destruct()
属性
特殊指针$this->
在类外访问属性方法
不推荐类外访问属性方法
__get(属性)
__set(属性,属性值)
子主题 4
子主题 3
类属性
类方法的调用
继承
单项继承的
与访问修饰符有关
重载
parent::属性或是方法
final禁止继承和重载本类属性方法
理解多重继承C++类型
实现接口解决不能多重继承
访问修饰符
public
private
protected
类的设计
高级面向对象功能
不用实例化调用属性方法
使用per-class常量
静态方法static
类型提示instanceof
{$b instanceof B}
延迟静态绑定(>php5.3版本)
对象克隆clone及__clone
clone
__clone()方法写在父类中
抽象类
使用__call()重载方法
使用__autoload()方法(单独的函数,非类)
实现迭代器和迭代
用foreach()取出一个对象的所有属性
iterator迭代器
将类型转换成字符串
使用Reflection反射API
错误和异常处理
异常处理的概念
异常控制结构
Exception类
用户自定义异常
写文件三种错误
文件无法打开
无法获得写权限
文件无法写入
异常和php的其他错误处理机制
0 条评论
下一页
为你推荐
查看更多