PHP快速上手总结

PHP教程

变量

HP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量:

全局变量:

函数内部不能直接使用全局变量;但是可以使用global +$var去访问;或者通过GLOBALS来访问;具体如下代码:

$one=12;
function demo(){
	echo $GLOBALs['one'];
	global $one;
	echo $one;
}
NULL类型

NULL 不表示空格,也不表示零,也不是空字符串,而是一个变量的值为空,NULL 不区分大小写

特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 Null。

NULL 值标示变量是否为空。也用于区分空字符串与空值数据库,可以通过把值设置为 NULL,将变量清空。

在下列情况下一个变量被认为是 NULL:

  1. 被赋值为 NULL。
  2. 尚未被赋值。
  3. 被 unset ( )。 = 销毁指定的变量。

is_null()


$a = null;
$b = 1;

var_dump(is_null($a)); // 输出结果为:true
var_dump(is_null($b)); // 输出结果为:false

转换为NULL



$a = 33;

unset($a);

var_dump($a); //输出结果为:NULL

函数

使用回调函数;传递函数;

function filter( $fun ){
    for($i=0;$i<100;$i++){
        if($fun($i)){
            continue;
        }
        echo $i.'sss';
    }
}
function one($num){
    return $num%3==0;
}
filter("one");

借助call_user_func_array()函数自定义回调函数

function filter( $fun ){
    for($i=0;$i<100;$i++){
        if(call_user_func_array($fun,array($i))){
            continue;
        }
        echo $i.'
'
; } }

函数闭包
可以在函数内部中使用外部变量;需要通过use来连接闭包函数何外界变量;这些变量必须在函数或类的头部声明。闭包函数是从父作用域中继承变量。

$fun = function ($param){
    echo $param;
};
$fun("sss");
function callback($callbcak){
    $callbcak();
}
$var="String";
callback(function ()use ($var){
    echo $var;
});

数组

声明数组

$arr=array("key","value");
count($arr)//get length of the array;

删除数组

unset($array[index]);//删除后;不会重建索引;
可以使用array_values($array) //重建索引;

对象

创建对象:类属性;访问类属性:

class class_name
{
    // 在类中定义一个类属性
    var $var_name = '666';
}
$object_name = new class_name();
echo $object_name->var_name ; // 输出结果:666

魔法方法

  1. __set()
    方法为私有的成员属性设置值;不需要有任何返回值;
  2. __get()

静态变量
静态变量;函数执行完毕后;不会销毁;用static关键字修饰;仅仅在脚本执行的期间函数第一次调用时被初始化;
引用传值
php默认函数传递是 值传递;可以使用引用传递;只需要在前面加上&

function test1(&$a){
    $a=122;
}
$var=10;
test1($var);
echo $var; //122

抽象类
抽象类中可以有非抽象方法;抽象类用abstract修饰;
子类继承抽象类;然后实现里面的抽象方法;
接口
接口所有的方法都是抽象类;不需要加修饰符;默认是public;
接口和抽象类一样;不能实列化;
php是单继承;可以通过实现多个接口;来达到多继承;
require VS include
require一般放在开头;在脚本执行前;就会先读入他所引入的文件;而include通常放在流程控制里面;只有当运行到它才会加载该文件;

你可能感兴趣的:(PHP)