PHP基础知识总结

<?php
/*
标识符:字母数字下划线不能数字开头
变量  以$开始,区分大小写
常量:所有字母大写,出现多个单词时使用下划线进行分割。
数据类型:整形、浮点型、字符串、bool型、数组、对象、资源、null
*/
define(标识符,值);define("PI",3.1415);

/*包含代码*/
include '1.php'; //在引用失败时产生一个警告,之后的代码继续运行
require '1.php';//在引用失败时产生一个致命错误,程序结束运行
/*Function*/
function name($parsm1,$parsm2){
    //name 不区分大小写
}
/*
静态变量:在变量名前使用static关键词声明。函数内定义
全局变量:在函数外定义的变量,在函数内使用的全局变量加上关键字global
参数默认值:定义函数时,任何默认参数必须放在任何非默认参数的右侧。
单引号和双引号区别:是否进行变量解析;是否识别特殊的转义字符
单引号:不解析字符串中的变量,仅支持 \' 和 \\ 两个转义字符
双引号:解析字符串中的变量,支持多种转义字符  \"、\n、\$
自定义定界符 1.一般都大写
*/
//字符串处理
strrev('abcdefg');//反转字符串gfedcba
number_format(21349.783,'2','.',','); //函数通过千位分组来格式化数字
parse_str('name=liuming&sex=nan'); //函数把查询字符串解析到变量name中。
parse_url(' http://www.baidu.com');//将网址解析成数组Array ( [scheme] => http [host] =>  www.baidu.com )
ucfirst('hah');//字符串首字母转为大写Hah
lcfirst('ADD');//把字符串中的首字符转换为小写aDD
ucwords('hello world'); //把字符串中每个单词的首字符转换为大写Hello World
trim($str);//删除字符串开始和结尾的空白符及其他
ltrim($str);//删除字符串开始的空白符
rtrim($str);//删除字符串结尾的空白符
strlen("hello world!")=12; mb_strlen('hello world!')=12;strlen('你好啊a')=10;mb_strlen('你好啊a','utf8')=4;
strtolower('Abc');//将字符串中的英文全部转换为小写 abc
strtoupper('aBc');//将字符串中的英文全部转换为大写 ABC
strtolower($captcha!='abcd');//查看验证码是不是abcd
strcmp($str1,$str2);//如果str1小于str2返回-1;大于返回1;相等返回0;将数字变成字符串再比较
strcasecmp($str1,$str2);//比较字符串之前,将字符全部转换为小写
strpos('cuiasiffifas','i');//返回所查找字符第一次出现的位置   strpos($email, '@') == 0 是否含有@
strrpos($str,$toFind);//最后一次出现的位置
strstr($str,$toFind);//此函数返回toFind在str中第一次出现到str末尾的字符串 同strchr()查找
strchr(string,search,true/false);//第一次出现之前的字符串部分。
str_replace($search,$replace,$str);//此函数替换$str中所有的$search为$replace,并返回$str
substr($str,$start,$length);
//此函数返回str中从start位置开始的长为length的子串,如果没有指定length则表示截取到字符串末尾
$pattern ='正则表达式';
preg_match($pattern,$qq);
preg_replace($search,'替换成什么',$str);
Preg_split ($pattern,'要截取的str');//拆分并返回拆分后的数组
Preg_grep ($pattern,$要过滤的数组); //返回一个数组,是过滤后的
//数组:数据类型不限、键可以是数字也可以是字符串
$student=array('张三','男',20);      $student=array('姓名'=>'张三','性别'=>'男',20);
$student[1]='张三';                  $student[]='zhangsan';                       
$student[2]='男';                    $student[]='nan';                                
$student[3]=20;                      $student[]=20;

range($low,$high,$step);
//数组使用
$a[1];$a['name'];$a[0][1];
print_r();//以"键-值"形式显示数组信息

foreach ($student as $key => $value) {
        //使用$value 或 $key
}
/*List 析取列表元素*/
$info = array('coffee', 'brown', 'caffeine');
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
/*排序*/
asort($student);//值顺序    arsort($student);//倒序
ksort($arr);//键顺序        krsort($arr);//倒序

/*Web核心技术
请求消息头表明请求的主页、请求字符串、发送请求的Web浏览器信息等
请求消息主体主要用在POST请求中,表明用户提交的POST数据
响应头部消息提示浏览器请求返回状态、采用什么文档类型、什么编码方式等等浏览返回的页面。在    PHP中一般使用header( )函数设置响应消息头
*/
/*文档类型*/  
header('Content-Type: application/vnd.ms-excel');  
header('Content-Type: text/plain');
header('Location:  http://www.baidu.com');
/*预定义的超全局数组*/
$_GET[];
$_POST[];
$_FILES[];
$_SERVER[];
$_COOKIE[];
$_SESSION[];
$_REQUEST[];
//若有文件上传则需要用POST  <form action="" method="post" enctype="multipart/form-data">
/*服务器处理文件上传*/
$_FILES['控件名']['name'];                 //上传文件的原始名称
$_FILES['控件名']['tmp_name'];             //上传文件存储在服务器上的临时文件名
$_FILES['控件名']['type'];                   //文件的MIME类型,如text/html等
$_FILES['控件名']['size'];                 //文件大小(单位是字节)
$_FILES['控件名']['error'];                //传文件出错的错误代码
move_uploaded_file('临时文件名','目的位置和文件名');//移动上传的文件到指定目录
/*状态维持*/
setCookie("userName","alice",time()+600);
$user = $_COOKIE['user'];//使用cookie
Setcookie("userName","",time()-3600);
unset($_COOKIE["userName"]);// unset不删除客户端的cookie,只是删除服务器内存中的
/*Session*/
session_start()
$_SESSION["userName"] = "alice";
$_SESSION["userName"] //访问
unset($_SESSION["userName"]); //删除单个会话变量
$_SESSION = array();     //删除全部变量
session_destroy()      //彻底删除会话
/*数据库*/
mysql_connect($dbhost,$dbuser,$dbpwd) or die("can't connect to dbserver,error:".mysql_error())
mysql_select_db($dbname) or die ("can't select db,error:".mysql_error());
mysql_query("set names 'utf8'");
mysql_real_escape_string()过滤用户数据

$Sql = "SELECT id FROM users WHERE 'name'='$username' AND 'password'='$pwd'";
$Res = mysql_query($Sql); 

$r1=mysql_query("select name,password  from users where id=1 ");
$age=mysql_result($r1,0,1);    //或
$age=mysql_result($r1,0,'age');
//如果结果集很小,只关心某个值,可以使用mysql_result()函数简单获取该值

mysql_fetch_row($result);//从结果集中取得一行作为索引数组返回。如果没有更多的行则返回false
mysql_fetch_array($result);//从结果集中取一行作为数组返回,如果没有更多的行则返回 false

$result1=mysql_query("select * from users");
$row=mysql_fetch_row($result1);  
$sid=$row['id'];        //或者$sid=$row[0]; 
$sname=$row['name'];      //或者$sname=$row[1];

/*插入数据*/
$regSql="INSERT INTO users(id,uname,email, password,timestamp, question,answer)
VALUES(null,'$username','$email','$pwd',CURRENT_TIMESTAMP,'$question','$answer')";
mysql_query($regSql);
/*关闭数据库*/
mysql_close($dbc);
/*其他*/
mysql_affected_rows();   // 取得前一次MySQL修改/删除操作影响的记录行数
mysql_insert_id();       // 取得上一步insert操作产生的ID
md5($str);                 //加密函数  加密后不可逆转

//异常
throw  new  Exception('……');
try {
    ……
} catch (Exception $e) {
    ……
}

类   属性:静态特征(变量)   
方法:动态行为(函数) 具有相同特征和行为的一组事物的集合

Class Person{
    private $_name;
    private $_gender;
    private $_age;

    public function eat()
    {

    }
    public function __construct($name)
    {
       $this->_name = $name; //构造函数
    }
}
$person1 = new Person(); $person2 = new Person("hellen");
$person1->eat();  $person1->name //使用符号 -> 来访问对象的属性和方法
//$this代表当前类的对象
const //类常量修饰符    const PI = 3.14;   全部大写,值不可改变
类内部访问  self :: PI          self :: 常量名
类外部访问  Person :: PI ;      类名 :: 常量名
static //类静态属性或方法修饰符
静态属性:用static修饰的   类的属性  类的公用变量(所有实例对象共享)
静态方法:用static修饰的   类的方法
static  public $maxAge = 130 //静态属性定义方法   
类内部访问  self :: $maxAge     self :: 静态属性名
类外部访问  Person :: $maxAge  Person :: 静态属性名
static  访问限制符 function 方法名() {  } //静态方法定义方法 
static  public function  setMaxAge($age){
           self :: $maxAge  =  $age;
       }
类内部访问静态方法没有意义
类外部访问静态方法Person :: setMaxAge( 150 ) 类名 :: 静态方法名()
    说明:
静态方法只能访问静态属性
$this和self都只能在类中使用,不能在类外使用
$this表示运行时该类的当前对象;self永远表示当前类
$this只能访问非静态、非常量的属性和方法 self只能访问静态、常量属性和方法

/*继承*/
Class  ChildClass  extends  ParentClass{  }

父类的访问限制符,子类中是否可以访问
public    可以
Protected     可以
private    不可以


重载:调用父类构造方法
parent  ::  __construct( );

说明:
一个类只能继承自一个父类
优点:类结构清晰,便于代码维护
缺点:多继承现实世界中不容易处理
类声明前使用final,则不能被继承

一些魔术方法:
构造方法(__construct)、析构方法(__destruct)
获得对象属性(__get)、设置对象属性(__set)
克隆对象(__clone)
_get()访问不存在的属性时被调用执行
__set()赋值给一个不存在的属性时被调用执行    
克隆对象:
$book2=clone $clone1
抽象类:
不能实例化对象的类
抽象类的方法可以为抽象方法也可以为具体方法
若一个类某个方法为抽象方法,该类必须为抽象类 
Innodb不支持事务
?>

猜你喜欢

转载自blog.csdn.net/u010340022/article/details/80699776