PHP开发的必会基础

类/对象方法:

魔术方法
__call($func_name, $args) 调用对象不存在方法__callStatic($func_name, $args) 调用不存在静态方法(静态方法)__set($key, $value) 设置属性
__get($key) 获取不存在属性__construct()__distruct()
__clone() 克隆时调用__invoke() 把对象当成方法调用时__unset($key) unset对象不存在说无法访问属性调用
__isset() 使用isset、empty时调用(注意:empty判断时结果是返回值的反向)
相关函数
call_user_func_array([函数名称|数组形式]) 调用自定义函数method_exists([对象变量],[函数名称]) 判断对象方法是否存在
function_exists([函数名称]) 函数是否存在

数组:

数组函数
array_pop(&$x),array_shift(&$x),array_unshift(&$x, “a”, “b”),array_push(&$x, “a”, “b”),
in_array(“a”, [“a”]) // 返回真假array_merge($x, $y)array_reverse($x)
array_splice($x, 0, 1, “A”)array_search(“a”, $x) // 返回索引注意判断全等于array_map(function($value){}, $x)
array_values($x)array_keys($x)array_walk($x, function(&$value,$key){})
内置数组
$_SESSION$_COOKIE$_FILE
$_SERVER$_GET$_POST
$GLOBALS
$_SERVER$_GET$_POST
数组遍历:array_map()、array_walk()、list()、for、foreach-

字符串:

转义
addslashes($str) 转义stripslashes($str) 取消转义
编码
mb_convert_encoding(string, to_code, from_code)serialize() unserialize()json_encode() json_decode()
base64_encode() base64_decode()
strrev() 翻转strlen() 字符串字节数,中文占3个mb_strlen() 支持中文也占1个
gethostbyname(“www.baidu.com”)
获取域名IP地址不用第三个变量互换值
list($x, y ) = [ y) = [ y)=[y , $x];explode(",", $x) implode("," , $x)
explode(",", $x) implode("," , $x)
互转substr_count(string, need)
统计字符串出现次数trim() rtrim() ltrim()
substr($str, 0, 1) // 截取字符串strpos($str, $need) // 字符出现位置
str_replace($need, $replace, $str)grep_replace("/w{1,3}/", “###$1”, $str)strstr($str, “8”) // 返回该字符串后所有字符

时间:

date()time()strtotime()
mktime(h,i,s,m,d,y)
天开始结束
$now = strtotime(“2021-04-02”);
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), date(‘d’), date(‘y’))) , PHP_EOL;
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), date(‘d’)+1, date(‘y’)) -1) , PHP_EOL;
月开始结束
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’), 1, date(‘y’))) , PHP_EOL;
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’)+1,1, date(‘y’)) -1) , PHP_EOL;
年开始结束
echo date(“Y-m-d H:i:s”, mktime(0,0,0,1, 1, date(‘y’))) , PHP_EOL;
echo date(“Y-m-d H:i:s”, mktime(0,0,0,1,1, date(‘y’)+1) -1) , PHP_EOL;
周开始结束
$week = date(‘w’) ? date(‘w’, $now)-1 : 7-1;$diff = 7 - date(‘w’, $now);
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’,$now), date(‘d’,$now)-$week, date(‘y’,$now))) , PHP_EOL;
echo date(“Y-m-d H:i:s”, mktime(0,0,0,date(‘m’,$now), date(‘d’,$now)+$diff, date(‘y’,$now))) , PHP_EOL;

文件:

方式一:
$handle = fopen('./test', r | w);
//fwrite($handle, 1000);
$contents = fread($handle, 100);
echo $contents;
fclose($handle);
方式二:
file_put_contents([filename], [contents]);
file_get_contents([filename]);

文件操作函数

scandir([dirpath])   目录内容列表
chmod([filenname], 0777)
mkdir([dirpath]);   创建目录
unlink([filepath])   删除文件
is_dir([dirpath])     是否存在目录
file_exists([filepath])    是否存子文件
copy([origin_path], [new_path])     复制文件

锁定文件:

$file = fopen("test.txt","w+");
if (flock($file,LOCK_EX)){
    fwrite($file,"Write something");
    flock($file,LOCK_UN);
}else{
    echo "Error locking file!";
}
fclose($file);

排序算法:

// 选择算法
function selectSort($arr)
{
    static $result = [];
    $rodKey = 0;
    $rodVal = $arr[$rodKey];
    for ($i = 0; $i < count($arr); $i++) {
        if ($arr[$i] > $rodVal) {
            list($rodKey, $rodVal) = [$i, $arr[$i]];
        }
    }
    array_splice($arr, $rodKey, 1);
    array_unshift($result, $rodVal);
    if ($arr) selectSort($arr);
    return $result;
}

// 冒泡算法
function bubbleSort($arr)
{
    for ($n = 0; $n < count($arr); $n++) {
        for ($i=0; $i<count($arr)-1; $i++) {
            if ($arr[$i+1] < $arr[$i]) list($arr[$i+1], $arr[$i]) = [$arr[$i], $arr[$i+1]];
        }
    }
    return $arr;
}

// 一个介于选择、冒泡之间的四不像算法
function bubbleSort($arr)
{
    for ($c = 0; $c < count($arr); $c++) {
        for ($i = 0; $i < count($arr) - 1; $i++) {
            if ($arr[$i] > $arr[$i + 1]) {
                $bak = $arr[$i + 1];
                list($arr[$i + 1], $arr[$i]) = [$arr[$i], $bak];
            }
        }
    }
    return $arr;
}

正则:

preg_match($match, $subject, $result) // 单次匹配preg_match_all($match, $subject, $result) // 多次匹配
preg_replace($need, $replace, $subject) // 替换字符串与数组preg_filter($need_arr, $replace_arr, $subject) // 替换并筛选数组元素
preg_grep($match , $arr) // 筛选符合正则的元素

Linux下PHP安装请移步这里:https://blog.csdn.net/weixin_40916428/article/details/115673255

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值