xiaoyi's blog
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

xuexuguang

后端新秀
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 学习

  • GitHub技巧

  • 面试

    • 面试问题集锦
    • PHP基础
    • 正则表达式
    • PHP文件操作
    • PHP会话控制
    • 自定义函数及内置函数
      • 变量作用域
      • 静态变量
      • 函数的返回值
      • 外部文件的导入
        • include与require
      • 系统内置函数
        • 时间日期函数
        • IP处理函数
        • 打印处理
        • 序列化与反序列化
        • 字符串处理
        • 数组处理
        • 回顾真题
    • MVC对比
    • linux
    • MySQL数据库基础
    • MySQL创建高性能的索引
    • MySQL的SQL优化
    • MySQL的高可扩展和高可用
    • MySQL安全
    • 常见算法
    • 常见数据结构
    • 高并发解决方案
    • 流量优化
    • 浏览器缓存和数据压缩
    • 图片优化
    • 静态化处理
    • 动态语言并发处理
    • 数据库缓存优化
    • 负载均衡
  • 博客搭建

  • 心情杂货

  • 技术文档

  • 实用技巧

  • 友情链接
  • 更多
  • 面试
xuexuguang
2020-12-31

自定义函数及内置函数

# 变量作用域

变量的作用域也称变量的范围,变量的范围即它定义的上下文背景。大部分的PHP变量只有一个单独的范围,这个单独的范围跨度同样包含了include和require引入的文件。

$outer = 'str';

function myfunc() {
    global $outer;
    echo $outer;
}
1
2
3
4
5
6

# 静态变量

静态变量仅在局部函数域存在,但当程序执行离开此作用域时,其值并不会消失。

static关键字

  1. 仅初始化
  2. 初始化时需要赋值
  3. 每次执行函数该值会保留
  4. static修饰的变量是局部的,仅在函数内部有效
  5. 可以记录函数的调用次数,从而可以在某些条件下终止递归
$count = 5;

function get_count() {
    static $count;
    return $count++;
}

echo $count;
$count++;

// NULL
echo get_count();
// 1
echo get_count();
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 函数的返回值

  1. 默认情况函数参数通过值传递,引用传递需要使用&
  2. 值通过使用可选的返回语句return返回
  3. 可以返回包括数组和对象的任意类型
  4. 返回语句会中止函数执行,将控制权交回函数调用处。
  5. 省略return,返回NULL,不可返回多个值
function &myFunc(){
    static $a =10;
    return $a;    
}
// 10
echo myFunc();

$a= &myFunc();
$a = 100;
// 100
echo myFunc();
1
2
3
4
5
6
7
8
9
10
11

# 外部文件的导入

# include与require

  1. include/require 语句包含并运行指定的文件
  2. 当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围。
  3. 加载过程中未找到文件,include发出警告,而require回发出一个致命的错误,require在出错时产生E_COMPILE_ERROR的错误,导致脚本终止。
  4. include_once和include唯一区别就是php会检查文件是否被包含过

# 系统内置函数

# 时间日期函数

  • date
  • strtotime
  • mktime
  • time
  • microtime
  • date_default_timezone_set

# IP处理函数

  • ip2long
  • long2ip

# 打印处理

  • print
  • printf
  • print_r
  • echo
  • var_dump
  • var_export

# 序列化与反序列化

  • serialize
  • unserialize

# 字符串处理

  • implode
  • explode
  • join
  • strrev
  • trim
  • ltrim
  • rtrim
  • strstr
  • number_format

# 数组处理

  • array_keys
  • array_values
  • array_diff
  • array_intersect
  • array_merge
  • array_shift
  • array_unshift
  • array_pop
  • array_push
  • sort

# 回顾真题

<?php

$var1  = 5;
$var2 = 10;

function foo(&$my_var) {
    global $var1;
    $var1 +=2;
    $var2 = 4;
    $my_var +=3;
    return $var2;
}

$my_var = 5;
// 4
echo foo($my_var)."\n";
// 8
echo $my_var."\n";

// 7
echo $var1;

// 10
echo $var2;


$bar = 'foo';
$my_var = 10;

// 4
echo $bar($my_var).\n;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
编辑
#php面试题
上次更新: 2020/12/31, 06:55:18
PHP会话控制
MVC对比

← PHP会话控制 MVC对比→

最近更新
01
MVC对比
12-31
02
负载均衡
12-31
03
数据库缓存优化
12-31
更多文章>
Theme by Vdoing | Copyright © 2020-2020 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式