欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP快速上手总结

程序员文章站 2022-03-31 11:29:55
...

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

<?php

$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.'<br>';
    }
}

函数闭包
可以在函数内部中使用外部变量;需要通过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