外贸网站制作技术人员的储备人才学习php技术的手册,现将分享给工作在第一线的php开发人员
Boolean布尔型的假值如下: (相反其它的全部为真)
1,bool false 为假
2,int 0为値假
2.2 float 0.0,0.00为假
3,string “”, “0” 为假
4,array 空数组为假
5,NULL 为假B
常量定义及注意细节
define(”ROOT”,10);
1,默认是区分大小写的,但是可以通第三个参数 true来改变不区分大小写,默认第三个参数是false
2,常量的值只能是四种数据类型(整型,浮点,布尔,字符串),其它类型都不行
3,常量不能用unset释放
4,用defined()用来判断常量是否存在
5,一旦定义就不能被改变或取消
PHP 变量 分以下几种
1,局部变量(函数内容声明的变量)
2,全局变量(函数外部声明的变量)
3,常量 define(“名称”,值);
4,系统9个全局变量$_POST,$_GET, $_REQUEST, $_SERVER, $_COOKIE, $_SESSION等等9个
5,$GLOBAL全局数组变量
6,静态变量(在函数内声明静态变量,在第一时间声明,static $a),静态变量是存放在内存静态区,直到脚本结束时才释放
7, 释放变量方法 unset($a) 或者 $a=NULL;
函数
1,有返回值和无返值
a, 无返值通过是执行输出结果
b, 有返回值,返回一个变量,这个变量可以任何类型(字符串,数值,数组,对象),通过return语句返回
变量与函数的关系
1,常量和9个系统全局变量可以直接在函数体内使用,无须声明
2,全局变量要在函数体内使用,事先在函数体内声明关键字global,方法如下 global $a;
3,变量要在函数调用前面进行声明。与函数定义的位置无关,只与调用的位置有关。
函数的传参数类型说明
number 任何数字类型
mixed 任何类型
callback 回调函数类型
变量的引用,地址的变化
只有变量才有地址,具体值是没有地址的。
$a=10;
$b=&$a;
变量b是a的别名,或者说b的指针指向a的地址
传参的引用,必须是变量,不能是具体的值,否则会出错。
函数内部声明一个函数可以接收到调用本函数的所有参数
eg:function Demo(){
$arr = fun_get_args();
}
Demo(1,2,3,4,5,6);
变量函数 , 应用多,要重点撑握
function add($a,$b){
return $a+$b;
}
$val=“add”;
echo $val(10,20);
回调函数的用法, 重点撑握
$arr=array(1,2,3,4,5,6,7);
function demo($a, $b){
if($a>$b)
return 1;
elseif($a<$b)
return -1
else
return 0;
}
functon aa($c,$d){
}
usort($arr,”demo”); //数组排序
或者
aa(100,”demo”); //自定义调用
print_r($arr);
回调函数,传参数的方法
call_use_func_array(“函数名”,Array)
匿名函数使用
命名规范如下
$var = function(){ //function后面直接连括号
}; //一定要以分号结束
调用 echo $var();
也可以传参数进去
匿名函数是对象(内置对象)
闭包
匿名函数调用函数内的变量, 使用关键词 use
function demo(){
$a=1;
$b=2;
$var=function($str) use ($a,$b){
echo $str;
echo $a+$b;
}
echo $var(“xingbell”);
}
demo();
函数作为参数,来调用
function demo($arr,func()){
}
demo($arr,”函数名”);
数组
1,数组下标默认是索引,从0开始。
2,php5.4版本,支持 $arr= [1,2,3,4,5]; 写法
3, 新版数组的输出方法
function demo(){
return array(1,2,3);
}
echo demo()[0]; // 1
4, 如何删除数组中元素,使用unset, 下标不会得新索引,需要用array_values()重新索引
5. for遍历数组的前提条件,该数组必须是连续下标的索引数组才行。
6.list()函数
a. list()是一个函数,这个函数与其它的函数用法不同
b. 数组中有几个元素,在list()中就用几参数,而且参数必须是变量(新声明自定义变量),不能是值
c. 只能将索引数组,而且下标是连续的,转为变量,是按下标0开始找的。
d. 可以在list()参数中以空项选择性的接收数组中的元素
等号左边使用list()函数,等号右边是一个数组。
list()=$arr; 或者 list()= [1,2,3,4]
list的作用
超全局数组变量(超全局变量)
超全局数组(变量),在php的脚本中,已经声明完的变量,可以直接使用,变量名已定好的
1,数组(关联数组),就和你在自己声明的数组是一样的操作方式
2,全局
3,每一个预定的变量有自己的独特的能力
9个全局变局(数组)如下:
$_SERVER
$_ENV
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$GLOBALS
数组中键值搜索相关的函数
in_array(“string”,$arr)
面向对象
类和对象的关系: 类只是对象的描述,对象具有类中所有的属性和方法
类的的声明方法
class 类名{
//成员属性 ,成员属性前面必须要修饰词 ( var, static, public, provate…..), 在不知道的情况下用var
var $name
//成员方法
funciton a(){
$this->name. “在处理事务”;
}
}
this的理解, 当我们实例化一个类时候,每一个对象有自己的成员属性的和方法,在方法中如何要用到自己的属性,就必须使用this来标明,使用方法如下:$this->name;
构造方法
1,是对象创建完成以后,第一个自动调用的方法(特殊)
2,方法名称比较特殊,类名相同同名的方法名 (php4里面)
3,给对象中国成员赋初值使用的
4,构造方法可以传参
构造方法 == 魔术方法 __countruct(){
} (php5出来的,以后用魔术方法)
析构方法
1,在对象在消失之前,最后一个调用的方法
2,当对象赋为空,或unset,或脚本运行结束,引用断掉后,就会启动垃圾回收机制
function __destruct(){
}
3,析构方法中不能传参数
平时一般是用析构方法是用来释放资源,操作文件(关闭),关闭操作数据库结果集
封装
在类里面,我们如果不想让对象使用某方法,在方法前面添加private的修饰词,但是在类里面,类方法可以调用封装的方法
class demo{
public $name;
public $age;
function run(){ //类里面可以自己调用自已
$this->left();
$this->right();
}
private left(){
return …..
}
private left(){
retrun ……
}
}
$demo1= new demo;
$demo->run(); //可以调用
$demo->left(); //不能调用
属性封装后,不能给属性赋值,不能访问属性
魔术方法基本上都是自动调用
__get($a) //自动调用,是在直接访问私有属性时,要传一个参数 (使用机率多一点)
__set($a,$b) //自动调用,是在直接访问私有属性时,两个参数(使用机率多一点)
___isset($a) //自动调用 , 判断对象中是否存在属性 (不常用)
___unset($a) //自动调用,不用返回值,直接删 (不常用)
继承 Extends
1,子类使用 extends 继承父类,子类可以将父类中所有的内容都继承过来
2,private 这是私有的,只能自己用,不能别人用,包括自己的子类也不能用。
3,protected 这是个保护的权限,只能是自己和自己的子类中可以使用的成员,不能在外面使用。
4,public 这个是公开的权限,所有都可以,自己,子类,类外都可以使用。
继承中的重载(覆盖)
1,在子类中可以写和父类同名的方法,方法也可以扩展
parent:: 指父类类名,使用parent::方法访问父母中被覆盖的方法
class demo {
function say(){
……
}
}
class demo_sub extends demo{
function say(){
parent::say();
echo “$this->school”;
}
}
2,构造函数在子类覆盖的时候,一定要先调用一下
class demosub extends demo{
var $school;
function __coustruct($a,$b,$c,$d){
parent::__coustruct($a,$b,$c);
$this->school=$d;
}
}
万邦网络科技外贸网站制作技术干货。