PHP学习总结(一)

一.基础知识
1.单双引号皆可声明字符串;双引号中可以直接解析变量,又可以直接使用转义 


 字符,单引号则不可以,最好使用单引号(效率高);
2.数据类型间的相互转换:
  setType(变量型,类


型);//int,integer,float,double,real,bool,Boolean,string,array,object;
  $变量=intval(变量或值);
  相关函数:
  isset();empty();unset();//注销变量;setType();getType();
  is_bool();is_int();
  define("常量名",值);
3.运算符号:
  算术运算符:+ - * / % ++ --
  字符串运算符:.
  赋值运算符:= += -= *= /= %= ++ --
  比较运算符号:> < >= <= ==(比较不转换类型) ===(比较转换类型)  !


=或<> !==
  逻辑运算符 &&或and ||或or !或not
  位运算符: & | ^ << >>  >>>
  其他运算符:?:(三元运算符) '' @ =>(键名=>键值) -> :: & $
4.PHP的变量范围:
  gloabal//要通过这个关键字将全局变量包含到函数中才能使用
  static//静态变量只能声明在函数中,不能在全局声明;保存在静态代码段中


,只在第一次调用的时候声明。
  变量函数:$var=hell;$var();//将寻找与变量名值相同的函数 hello()
5.require:用于静态包含;require_once
  include:用于动态包含;include_once
6.数组的遍历:
  for语句循环遍历//不是首选;
  foreach循环遍历,foreach(数组变量 as 下标变量=>值变量){}
  while() list() each() 组合循环遍历
  each():需要一个数组参数,返回一个数组(0,1,key,value,)
  list():list()=array(),数组中的元素个数要与list()中的参数个数相同
  数组内部的指针控制函数
  next(),prev(),reset(),end(),current(),key()//参数均为数组,移动数组


指针
7.超全局数组:
  $_REQUEST//经由GET,POST,COOKIE机制提交到脚本的变量,因此该数组不值得


信任,建议不去使用  
8.数组相关函数:
  array_values();
  array_keys();
  in_array();
  array_key_exists();
  array_flip();//交换数组中的键和值
  array_count_values()//统计数组中所有的值出现的次数
  array_filter()//用回调函数来过滤数组中的单元
  arry_walk(),array_map()
  排序函数:sort(),rsort(),usort()......
  数据结构相关:array_push(),array_pop()//堆栈
                array_unshift(),array_shitf()//队列


二.面向对象
1.对象和数组都是复合类型
2.对象的三大特性:封装,继承,多态
  封装:使用private,protected,public实现;
  继承:父类--基类,子类--派生类;
        extend//子类继承父类的protected,public
        重载:子类可重载父类方法,但是权限不能比父类低;
        子类中编写构造方法,父类中也有构造方法一定要去调用一次呗覆盖的


那个构造方法。
        对象->成员 类::成员
        父类名::方法名();
        parent::方法名();
   多态:让具有继承关系的不同类对象,可以对相同名称的成员函数调用产生


不同的反应效果。
3.构造方法:对象完成创建后第一个调用的方法__construct()
  析构方法:对象被释放之前最后一个自动调用的方法__destruct()
  魔术方法:在类中写了某个魔术方法,这个方法对象的功能就会添加上。
4.关键字:
  final:只能修饰类和方法,不能修饰成员属性(修饰的类不能被继承和覆盖)
  static:可修饰成员属性和方法,不能修饰类(可被同一个类的所有对象共享



  静态成员::类名::成员,在内部访问其他成员 self::成员
  self与$this的功能极其相似,但二者又不相同。$this不能引用静态成员和常


量。self更像类本身,而$this更像是实例本身。
  const:只能修饰成员属性,类中声明常量。访问方式和static类似。
5.常用魔术方法:
  __call()//在调用对象中不存在的方法的时就会出现系统报错,然后退出程序
  __toString()//这届输出应用对象时自动调用
  __clone()//克隆对象使用clone去处理,$this代表副本,$that代表原本
  __autoload()//唯一一个不再类中添加的方法,在页面中使用类自动将类名传


递给这个参数。
  serialize:参数是一个对象,返回来的就是串行后的二进制串
  unserialize():参数就是对象的二进制串,返回来的就是新生成的对象
  __sleep()
7.抽象类,接口,多态:
  抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类


或接口。
  抽象方法:没有方法体的就是抽象方法;//abstract function test()
  抽象类:只要有一个抽象方法就是抽象类,要使用修饰词abtract.
          其他不变,抽象类不能被实例化。
          子类继承抽象类时要重载抽象类中的抽象方法。
  接口:接口中的所有方法都必须是抽象方法;
        只能声明常量,不能声明变量,接口的成员访问权限都必学是public;


抽象类中的最低权限是protected。
        声明方式interface 类名{}(抽象方法不适用abstract);
        使用接口用关键字implements;
        类--接口,抽象类--接口//implements
        接口--接口:extend
        可继承多个接口,但是只能继承一个父类。


三.字符串的处理
php中的所有字符串处理函数,都不是在原字符串上修改的,而是返回一个新的


格式化后的字符串。
1.substr();//字符串截取
2.常用的字符串输出函数:
  echo()
  print()
  die()--exit()
  printf()
  sprintf()
3.常用的字符串格式化函数:
  ltrim()
  rtrim()
  trim()//去掉空格
  str_pad()//字符串两边填充内容
  strtolower()//转换成小写
  strtoupper()//转换成大写
  ucfirst()//首字母转换成大写
  ucwords()//每个单词首字母大写
  n12br()//在字符串所有新行之前加入换行标记
  htmllentities()
  htmlspecialchars()//上面一个和这一个防止输出HTML标签输出
  stripslashes()//反引用一个斜线
  strip_tags()//从字符串中去除HTML和PHP标记
  number_format()//以千位分隔符方式格式化一个数字
  strrev()//反转字符串
  md5();//加密
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章