PHP基础知识--初级


red{color:red;}

php学习笔记–初级
2017.1.24-2017.1.28


第一章 初识PHP

什么是php

  • PHP(Hypertext Preprocessor,超文本预处理器)
  • 跨平台windows、Linux、Unix
  • 服务端脚本语言
  • 与Apache很好的适应
  • 无需编译

第二章 PHP环境搭建和开发工具

wamp

  • Windows
  • Apache
  • MySQL
  • PHP

第三章 php语言基础

php标记风格(4种)

  1. xml风格(推荐)

    
    
  2. 脚本风格

    
    
  3. 简短风格(需配置)

    
    
  4. asp风格(需配置)

    <%
        echo '这是ASP风格的标记'; 
    %>
    

注释

  • 单行注释

    
    
  • 多行注释

    
    

php数据类型

  • 标量类型(4种)
    1. boolean(布尔型)
    2. integer(整型)
    3. float(浮点型)
    4. string(字符串)
  • 复合类型(2种)
    1. array(数组)
    2. object(对象)

单引号与双引号的区别

 双引号可以解析其中的变量,而单引号会把其中的字符全部当成字符串处理。所以定义字符串是建议使用单引号。

浮点型

浮点型的数值只是一个近似值,所以应该尽量避免浮点型数值之间的比较大小,因为这样的比较往往是不准确的。

整形

如果给定的数值超出了int型的最大值,将会被当做浮点型处理。

检测数据类型

  • is_bool() : 检测是否为bool类型变量
  • is_string() : 检测变量是否为字符串类型
  • ……
  • is_numeric(): 检测变量是否为数字或者为数字组成的字符串

PHP常量

语法格式:define(name,value,case_sensitive)
name(string):常量的名字
value:值
case_sensitive(boolean):对大小写是否敏感,true为不敏感

php变量

  • 变量名=$+标识符
  • 区分大小写
  • 标识符以字母和下划线开头

引用

在变量的前面加上&

变量作用域

局部变量,只在其函数内部有作用
全局变量,在整个php文件有作用,用户自定义的函数使用时,要用global声明全局变量
静态变量,在函数调用结束后仍存在,用static声明

可变变量

 一个变量的名称由另一个变量的值来决定。实现:在一个变量前面加上$号

字符串的连接

 两个字符串之间用.来连接,不能用+

php编码规范

  • 缩进,tab
  • 大括号

    if($exp){
    }
    或
    if($exp)
    {}
    
  • 关键字和小括号隔开。if (),if和左边的括号有一个空格
  • 函数和小括号紧贴在一起。round()
  • 运算符和两边变量要有空格(.除外)。a == b

php命名规则

  • 类命名。大驼峰法
  • 类属性命名。以m开头,其后与类命名一致
  • 方法命名。Is(判断)、Get(得到)、Set(设置)、
  • 方法的参数。小驼峰法
  • 变量命名。所有的字母小写,以_分隔单词
  • 引用变量/函数命名。带r前缀
  • 全局变量命名。带g前缀
  • 常量/全局常量命名。字母全部大写,单词用_分隔
  • 静态变量命名。带s前缀
  • 函数命名。所有字母小写,单词用_分隔

第四章 流程控制

第五章 字符串操作

trim函特数

作用:去除字符串首尾的空格和特殊字符
格式:string trim(string str[,string charlist]);
如果charlist为空,则可选字符都被删除

charlist可选字符
  • \0。null,空值
  • \t。tab,制表符
  • \n。换行符
  • \x0B。垂直制表符
  • \r。回车符
  • ” “。空格

    例子:去除字符串的“(@@)”,

    str=(@@); str=trim($str,“(@@)”);

ltrim函数

删除左边空格和特殊字符

rtrim函数

删除右边空格和特殊字符

转义、还原字符串

“\”是一个转义字符,紧跟在“\”后的第一个字符将变得没有意义或没有特殊意义

addslashes函数

作用:自动转义字符串
语法格式:string addslashes(string str)

scripslashes函数

作用:还原被addslashes函数转义的字符串
格式:string scripslashes(string str)

addcslashes函数

作用:指定转义的字符
格式:string addcslashes(string str,string charlist)

scripcslashes函数

作用:还原被addslashes函数专一的字符串
格式:string scripcslashes(string str)

获得字符串的长度(汉字占两个字符)

语法格式:int strlen(string str)

截取字符串

语法格式:string substr(sting str, int start[, int length])
参数解释:
str:被截取的字符串
start:开始截取的位置,如果为负数,则表示从字符串末尾开始截取
length:截取的字符数,如果为负数,则表示取到倒数第length个

比较字符串

  • strcmp(string str1, string str2)
    按字节进行比较,大小写敏感
  • strcasecmp(string str1, string str2)
    忽略大小写
  • strnatcmp(string str1, string str2)
    将字符串的数字部分按照自然大小比较,2<10
  • strcmp(string str1, string str2, int len)

    比较前len个字符串

检索字符串

语法格式: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的字串

单词定界符(\b、\B)

作用:匹配单词

\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]           //表示不是字母

限定符(?*+{n,m})

限定符        说明                       举例
----------------------------------------------------------
?    匹配前面的字符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次

PCRE兼容正则表达式函数(7个)

1.preg_grep()函数

语法格式:array preg_grep(string pattern, array input)
作用:input数组一一匹配pattern,返回满足的元素组成数组

2.preg_match()函数

语法格式:int preg_match(string pattern, string subject[, array matches])
作用:在字符串subject中查找匹配pattern,找到则保存到数组matches并停止查找,返回值为匹配次数0或1

3.preg_match_all()函数

语法格式:int preg_match_all(string pattern, string subject, array matches)
作用:上同

4.preg_quote()函数

语法格式:string preg_quote(string str[, string delimiter])
作用:对str中的特殊字符进行自动转义,如果存在delimiter,则也将delimiter中的字符也进行转义

5.preg_replace()函数

语法格式:mixed preg_replace(mixed pattern, mixed replacement, mixed subject[, int limit])
作用:在subject中匹配pattern,用replacement替换,limit限制最多匹配次数

6.preg_replace_callback()函数

与上一个功能相同

7.preg_split()函数

语法格式:array preg_splite(string pattern, string str[, int limit])
作用:str匹配pattern进行分割字符串,最多limit次,结果保存到一个数组并返回

第七章 PHP数组

声明数组

$array=array("html","css");                //声明下标数组
$array=array("a"=>"html","b"=>"css");  //关联数组

print_r(mixed expression)输出数组

print_r($array);

遍历数组

foreach($array as $val){
    //中间代码
}

数组元素的个数count(mixed arrat)

array_pop()

语法格式:mixed array_pop(array array)
作用:获得数组的最后一个元素

array_push(array array, mixed var)

语法格式:int array_push(array array, mixed var)
作用:将传入的变量压入数组的末尾,返回新数组的长度

array_unique()函数

语法格式:array array_unique(array array)
作用:删除数组中的重复元素

第八章 PHP与web页面交互

第九章 PHP与JavaScript交互

第十章 日期时间

第十一章 Cookie与Session

第十二章 图形图像处理技术

第十三章 文件系统

第十四章 面向对象

成员方法和函数的区别

函数是为了实现某一个特定功能,成员方法是类的一个行为

类常量

声明:const name;  //name中不用加$
访问:可以不用实例化对象访问,类名::常量名

构造方法

声明:function __construct([mixed])
作用:初始化对象
注意:是两个_

析构函数

声明:function __destruct()
作用:销毁对象
注意:是两个_

继承

子类将会继承父类的方法属性,和构造方法。如果子类有构造方法则调用子类的构造方法,否则调用父类的构造方法。

多态

  • 覆盖
  • 重载

操作符::

使用方式:      关键字::变量名/常量名/方法名
这里关键字分为以下3种情况:
1. parent:调用父类中的成员变量、成员方法和常量
2. self:调用当前类的成员变量、成员方法和常量
3. 类名:调用本类的变量、方法和常量

在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法可以调用静态变量和方法/red>

final关键字

修饰类 类不能被继承
方法      方法不能被重写或覆盖

抽象类

abstract,不能实例化,至少包含一个抽象方法
抽象方法声明:abstract function name();

接口的使用

不要用public以外的关键字来修改接口的类成员

__clone()

作用:在克隆对象的过程时,调用__clone()方法,可以使克隆出来的对象保持自己的一些方法及属性。

==和===

==  比较的是内容
=== 比较的是地址

对象类型检测

语法格式:   ObjectName instanceof ClassName
作用:检测ObjectName是否为ClassName的对象

魔术方法

_ _set()和get()

当程序试图写入一个不存在或不可兼得成员变量时,php将会调用__set()方法
当程序调用一个未定义或不可见的成员变量时,php将会调用__get()方法

_ _call()方法

作用:当程序试图调用不存在或不可见的成员方法时,php将会调用__call()方法

_ _sleep()方法

作用:关闭对象可能具有的类似数据库连接等善后工作,其在调用serialize()方法时被执行。

_ _wakeup()方法

作用:恢复在序列化中可能丢失的数据库连接及相关工作,在调用unserialize()方法时执行

_ _toString()方法

作用:在使用echo或print输出对象时,将对象转化为字符串。

如果没有__toString()方法而直接输出对象,将会发生致命错误!

_ _autoload()方法

作用:解决多次使用include_one()函数引入类

第十五章 PHP加密技术

主要介绍

  • crypt() 函数
  • md5() 函数
  • sha1()函数

crypt()函数

语法格式:string crypt(string str)
作用:单向加密字符串str

md5()函数

语法格式:string md5(string str)
作用:把任意长度的字节串变换成一定长的大整数

注意是字节串而不是字符串

sha1()函数

语法格式:string sha1(string str)

第十六章 MySQL数据库基础

第十七章 PHPmyadmin图形化管理工具

第十八章 PHP操作MySQL数据库

PHP访问MySQL数据库的一般步骤

  1. 连接MySQL服务器
  2. 选择MySQL数据库
  3. 执行sql语句
  4. 关闭结果集

使用mysql_connect()函数连接MySQL服务器

语法格式:mysql_connect('hostname','username','password')
参数解释:
hostname:MySQL服务器的主机名
username:MySQL用户名
password:MySQL密码

使用mysql_select_db()函数选择数据库文件

语法格式:mysql_select_db(string dbname)         //dbname为数据库名

使用mysql_query()函数执行sql语句

语法格式:mysql_query(string sql);           //sql为SQL语句

注意:SQL语句不应以分号结尾

使用mysql_fetch_array()函数从数组结果集中获取信息

语法格式: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));

注意:本函数返回的字段名区分大小写

使用mysql_fetch_object函数从结果集中获取一行作为对象

语法格式:object mysql_fetch_object(resource result)
用法与上基本相同,只是函数返回的是一个对象,所以访问方式不同。
$inf->id;

使用mysql_fetch_row()函数逐行获取结果集中的每条记录

语法格式:array mysql_fetch_row(resource result)
与 上上 个使用方式基本相同

使用mysql_num_rows()函数获取查询结果集中的记录数

语法格式:int mysql_rows(resource result)
例子:
$num=mysql_num_rows($sql);

第十九章 PDO

介绍PDO

PDO(PHP Data Object ,PHP数据对象),有了PDO,用户不必再使用mysql_*函数、oci_*函数或者mysql_*函数,也不必再将它们封装到数据库操作类,
只要使用PDO接口中的方法就可以对不同的数据库进行操作,在选择不同的数据库时,只需要修改PDO的DSN(数据源名称)即可。

PDO构造函数

语法格式:__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();
    }

PDO中执行SQL语句

exec()方法

语法格式:int PDO::exec(string statement)
作用:
statement是要执行的SQL语句
该函数返回的是影响的行数
通常用于INSERT、DELETE、UPDATE

query()方法

语法格式:PDOStatement PDO::query(string statement)
作用:
返回执行查询后的结果集

预处理语句–prepare()和execute()方法

语法格式:PDOStatement PDO::prepare(string statement)
         bool PDOStatement::execute()
作用:通过prepare()方法做查询的准备工作,然后,通过execute()方法执行查询

PDO中获取结果集

fetch()方法

语法格式:mixed PDOStatement::fetch()
作用:获取结果集中的下一行数据
例子:
$result=$pdo->prepare($query);
$result->execute();
while($res=$result->fetch(PDO::FETCH_ASSOC)){
    echo $res['id'];
}

fetchAll()方法

语法格式:array PDOStatement::fetchAll()
作用:获取结果集中的所有行
例子:
$result=$pdo->prepare($query);
$result->execute();
$res=$result->fetchAll(PDO::FETCH_ASSOC);
for($i=0;i

fetchColumn()方法

语法格式:string PDOStatement::fetchColumn([int column_number])
作用:获得结果集中下一行指定列的值
例子:
$result=$pdo->prepare($query);
$result->execute();
echo $result->fetchColumn(0)
echo $result->fetchColumn(0)

PDO中事务处理

  1. 开启事务–beginTransaction()方法
  2. 提交事务–commit()方法
  3. 事务回滚–rollBack()方法

    例子:
    try{
        $pdo->beginTransaction();
        $result->$pdo->prepare($query);
        if($result->execute()){
            echo "操作成功!";
        }else{
            echo "操作失败!";
        }
        $pdo->commit();
    }catch(PDOException $e){
        die("Error!");
        $pdo->rollBack();
    }
    

你可能感兴趣的:(php基础知识--初)