red{color:red;}
php学习笔记–初级
2017.1.24-2017.1.28
xml风格(推荐)
脚本风格
简短风格(需配置)
echo '这是简短风格的标记';
?>
asp风格(需配置)
<%
echo '这是ASP风格的标记';
%>
单行注释
多行注释
双引号可以解析其中的变量,而单引号会把其中的字符全部当成字符串处理。所以定义字符串是建议使用单引号。
浮点型的数值只是一个近似值,所以应该尽量避免浮点型数值之间的比较大小,因为这样的比较往往是不准确的。
如果给定的数值超出了int型的最大值,将会被当做浮点型处理。
语法格式:define(name,value,case_sensitive)
name(string):常量的名字
value:值
case_sensitive(boolean):对大小写是否敏感,true为不敏感
在变量的前面加上&
局部变量,只在其函数内部有作用
全局变量,在整个php文件有作用,用户自定义的函数使用时,要用global声明全局变量
静态变量,在函数调用结束后仍存在,用static声明
一个变量的名称由另一个变量的值来决定。实现:在一个变量前面加上$号
两个字符串之间用.来连接,不能用+
大括号
if($exp){
}
或
if($exp)
{}
作用:去除字符串首尾的空格和特殊字符
格式:string trim(string str[,string charlist]);
如果charlist为空,则可选字符都被删除
” “。空格
例子:去除字符串的“(@@)”,
str=”(@字符串@)”; str=trim($str,“(@@)”);
删除左边空格和特殊字符
删除右边空格和特殊字符
“\”是一个转义字符,紧跟在“\”后的第一个字符将变得没有意义或没有特殊意义
作用:自动转义字符串
语法格式:string addslashes(string str)
作用:还原被addslashes函数转义的字符串
格式:string scripslashes(string str)
作用:指定转义的字符
格式:string addcslashes(string str,string charlist)
作用:还原被addslashes函数专一的字符串
格式:string scripcslashes(string str)
语法格式:int strlen(string str)
语法格式:string substr(sting str, int start[, int length])
参数解释:
str:被截取的字符串
start:开始截取的位置,如果为负数,则表示从字符串末尾开始截取
length:截取的字符数,如果为负数,则表示取到倒数第length个
语法格式:string strstr(string haystack, string needle)
参数说明:
haystack:被检索的字符串
needle:备件所的对象
成功返回needle,失败返回:false
语法格式:int substr_count(string haystack, string needle)
str_ireplace()
语法格式:mixed str_ireplace(mixed search, mixed replace, mixed subject[, int &count])
参数说明:
search:要替换的字符串
replace:替换的值
subject:操作的字符串
count:获得替换的次数
注意:执行替换操作时不区分大小写,str_replace()函数区分大小写
substr_replace()
语法格式:string substr_replace(string str, string repl, int start[, int length])
参数说明:
str:操作的原始字符串
repl:替换的值
start:替换开始的字符串,负数表示替换从字符串的尾部开始
length:替换的长度,负值表示从字符串的后面开始替换
语法格式:string number_format(float number[, int num_decimal_places][, string dec_seperator, string thousands_seperator])
参数说明:(参数个数1、2、4,不能为3位)
number:要格式化的浮点数
num_decimal_places:保留小数的位数
dec_seperator:小数与整数的分隔符
thousands_seperator:每3个整数的分隔符
语法格式:array explore(string seperator, string str[, int limit])
参数说明:
seperator:分割表示符,如果为""则返回false,如果在str中找不到则返回包含str的单元素数组
str:要分割的字符串
limit:可选,如果为负数,则返回除最后的-limit个元素之外的元素
语法格式:sting implode(string seperator, array pieces)
参数说明:
seperator:指定的分隔符
pieces:指定要合并的数组
在新技术层出不穷的今天,让人难忘的、能称得上是伟大的技术寥寥无几,但是其中一定会有正则表达式。然而最容易让人忽略的也是正则表达式。
一方面几乎所有的编程语言和文本编辑工具都支持正则表达式;另一方面,关于正则表达式的书籍、资料很少。
正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。区分大小写
作用:用于描述字串的边界
^tm //匹配以tm开头的字串
tm$ //匹配以tm结尾的字串
tm //匹配存在tm的字串
作用:匹配单词
\btm\b //匹配字串中单词tm
\Btm\B //匹配字串tm,且tm不是单词
注意:一个[]只能匹配一个字符
T|tM|m //以T或者t开头,后跟一个M或m
TM|tm|Tm|tM //TM或tm或Tm或tM
[a-zA-Z] //表示任意一个字母
[^a-zA-Z] //表示不是字母
限定符 说明 举例
----------------------------------------------------------
? 匹配前面的字符0或1次 colo?r可以表示为color和colr
+ 匹配前面的字符一次或多次
* 匹配前面的字符0次或多次
{n} 匹配前面的字符n次
{n,} 匹配前面的字符至少n次
{n,m} 匹配前面的字符最少n次,最多m次
可以替换除了换行符的任意一个字符
作用:跟在\后的字符将会失去意义或失去特殊意义
除了做转义字符以外,反斜线还有一些别的用处
- 表示一些不可打印的字符
- 指定预定义字符集
- 定义断言
作用:
1.改变限定符的作用范围。
(thir|four)th //表示thirth或fourth
2.分组
([0-9][a-z]){3} //([0-9][a-z])重复3次
语法格式:array preg_grep(string pattern, array input)
作用:input数组一一匹配pattern,返回满足的元素组成数组
语法格式:int preg_match(string pattern, string subject[, array matches])
作用:在字符串subject中查找匹配pattern,找到则保存到数组matches并停止查找,返回值为匹配次数0或1
语法格式:int preg_match_all(string pattern, string subject, array matches)
作用:上同
语法格式:string preg_quote(string str[, string delimiter])
作用:对str中的特殊字符进行自动转义,如果存在delimiter,则也将delimiter中的字符也进行转义
语法格式:mixed preg_replace(mixed pattern, mixed replacement, mixed subject[, int limit])
作用:在subject中匹配pattern,用replacement替换,limit限制最多匹配次数
与上一个功能相同
语法格式:array preg_splite(string pattern, string str[, int limit])
作用:str匹配pattern进行分割字符串,最多limit次,结果保存到一个数组并返回
$array=array("html","css"); //声明下标数组
$array=array("a"=>"html","b"=>"css"); //关联数组
print_r($array);
foreach($array as $val){
//中间代码
}
语法格式:mixed array_pop(array array)
作用:获得数组的最后一个元素
语法格式:int array_push(array array, mixed var)
作用:将传入的变量压入数组的末尾,返回新数组的长度
语法格式:array array_unique(array array)
作用:删除数组中的重复元素
函数是为了实现某一个特定功能,成员方法是类的一个行为
声明:const name; //name中不用加$
访问:可以不用实例化对象访问,类名::常量名
声明:function __construct([mixed])
作用:初始化对象
注意:是两个_
声明:function __destruct()
作用:销毁对象
注意:是两个_
子类将会继承父类的方法属性,和构造方法。如果子类有构造方法则调用子类的构造方法,否则调用父类的构造方法。
使用方式: 关键字::变量名/常量名/方法名
这里关键字分为以下3种情况:
1. parent:调用父类中的成员变量、成员方法和常量
2. self:调用当前类的成员变量、成员方法和常量
3. 类名:调用本类的变量、方法和常量
在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法可以调用静态变量和方法/red>
修饰类 类不能被继承
方法 方法不能被重写或覆盖
abstract,不能实例化,至少包含一个抽象方法
抽象方法声明:abstract function name();
不要用public以外的关键字来修改接口的类成员
作用:在克隆对象的过程时,调用__clone()方法,可以使克隆出来的对象保持自己的一些方法及属性。
== 比较的是内容
=== 比较的是地址
语法格式: ObjectName instanceof ClassName
作用:检测ObjectName是否为ClassName的对象
当程序试图写入一个不存在或不可兼得成员变量时,php将会调用__set()方法
当程序调用一个未定义或不可见的成员变量时,php将会调用__get()方法
作用:当程序试图调用不存在或不可见的成员方法时,php将会调用__call()方法
作用:关闭对象可能具有的类似数据库连接等善后工作,其在调用serialize()方法时被执行。
作用:恢复在序列化中可能丢失的数据库连接及相关工作,在调用unserialize()方法时执行
作用:在使用echo或print输出对象时,将对象转化为字符串。
如果没有__toString()方法而直接输出对象,将会发生致命错误!
作用:解决多次使用include_one()函数引入类
语法格式:string crypt(string str)
作用:单向加密字符串str
语法格式:string md5(string str)
作用:把任意长度的字节串变换成一定长的大整数
注意是字节串而不是字符串
语法格式:string sha1(string str)
语法格式:mysql_connect('hostname','username','password')
参数解释:
hostname:MySQL服务器的主机名
username:MySQL用户名
password:MySQL密码
语法格式:mysql_select_db(string dbname) //dbname为数据库名
语法格式:mysql_query(string sql); //sql为SQL语句
注意:SQL语句不应以分号结尾
语法格式:array mysql_fetch_array(resource result)
例子:
$sql=mysql_query("select * from tb_books");
$inf=mysql_fetch_array($sql);
do{
echo $inf[id];
}while($inf=mysql_fetch_array($sql));
注意:本函数返回的字段名区分大小写
语法格式:object mysql_fetch_object(resource result)
用法与上基本相同,只是函数返回的是一个对象,所以访问方式不同。
$inf->id;
语法格式:array mysql_fetch_row(resource result)
与 上上 个使用方式基本相同
语法格式:int mysql_rows(resource result)
例子:
$num=mysql_num_rows($sql);
PDO(PHP Data Object ,PHP数据对象),有了PDO,用户不必再使用mysql_*函数、oci_*函数或者mysql_*函数,也不必再将它们封装到数据库操作类,
只要使用PDO接口中的方法就可以对不同的数据库进行操作,在选择不同的数据库时,只需要修改PDO的DSN(数据源名称)即可。
语法格式:__construct(string $dsn[, string $username[, string $password]])
参数解释:
dsn:数据源名称,包括主机名端口号和数据库名称
username:连接数据库的用户名
password:连接数据库的密码
例子:
$dns="mysql:host=localhost;dbname=zcw";
$username="zcw"
$password="***"
try{
$pdo=new PDO($dsn,$username,$password);
echo "pdo连接MySQL成功!";
}cache(Exception $e){
echo $e->getMessage();
}
语法格式:int PDO::exec(string statement)
作用:
statement是要执行的SQL语句
该函数返回的是影响的行数
通常用于INSERT、DELETE、UPDATE
语法格式:PDOStatement PDO::query(string statement)
作用:
返回执行查询后的结果集
语法格式:PDOStatement PDO::prepare(string statement)
bool PDOStatement::execute()
作用:通过prepare()方法做查询的准备工作,然后,通过execute()方法执行查询
语法格式:mixed PDOStatement::fetch()
作用:获取结果集中的下一行数据
例子:
$result=$pdo->prepare($query);
$result->execute();
while($res=$result->fetch(PDO::FETCH_ASSOC)){
echo $res['id'];
}
语法格式:array PDOStatement::fetchAll()
作用:获取结果集中的所有行
例子:
$result=$pdo->prepare($query);
$result->execute();
$res=$result->fetchAll(PDO::FETCH_ASSOC);
for($i=0;i
语法格式:string PDOStatement::fetchColumn([int column_number])
作用:获得结果集中下一行指定列的值
例子:
$result=$pdo->prepare($query);
$result->execute();
echo $result->fetchColumn(0)
echo $result->fetchColumn(0)
事务回滚–rollBack()方法
例子:
try{
$pdo->beginTransaction();
$result->$pdo->prepare($query);
if($result->execute()){
echo "操作成功!";
}else{
echo "操作失败!";
}
$pdo->commit();
}catch(PDOException $e){
die("Error!");
$pdo->rollBack();
}