自定义函数
{echoDrangon() // 执行代码块}
局部动态变量
static //局部静态变量,运行完成后并没有被释放掉
当有值的时候不再声明
全局变量
global 声明可使用全局变量
值的引用和传递
$a = 2;
function change(&$c){
$c = 5;
}
change($a);
echo $a; //5
// & 把$a的地址拿过来,再给与赋值
-------------------
普通函数定义指向的是栈内存
-------------------
对象指向的是堆内存
$obj = new stdClass();
$obj -> a = 3;
function change($o){
$o -> b = 5;
}
change($obj);
print_r ($obj);
// stdClass Object ( [a] => 3 [b] => 5 )
-------------------
参数的默认值
function test($a=5, $b=6){
echo $a;
}
test()
//5
可变参数列表
func_get_arg — 返回参数列表的某一项
func_num_arg
参数的类型
function test(callable $a){ //callable 回调类型 || 指定回调类型,如果没有的情况下会报错~!
$a();
}
function callback(){
echo '你好';
}
test('callback'); //你好
可变函数
function test(){
echo 'hello';
}
$func = 'test';
if( is_callable($func) ){
// 判断是否有这个回调函数
$func();
}
if( function_exists($func)){
$func();
}
函数潜嵌套
function a(){
function b(){
echo 'hello';
}
}
a(); // 空
b(); //hello
-------------------------------
function a(){
$a = '5'; //定义在a()当中,其他函数无法获取
function b(){
echo $a;
}
}
a(); // 空
b(); // 报错
匿名函数
function test(){
$info = 'hello';
$say = function ($str) use ($info){ //通过use 得到外层的变量
echo $info;
echo $str;
};
$say('hello word');
}
test();
系统函数
字母大写
strtolower — 将字符串转化为小写
strtoupper — 将字符串转化为大写
ucfirst
//将橘子首字母转换为大写
unwords
//将每个单词的首字母转换为大写字母
字符串替换
str_replace
$body = 'hello word'
str_replace('o','q',$body);
//hellq wqrd
str_ireplace
忽略大小写
转换为html实体
{htmlspecialchars}
删除空格
ltrim
//删除左边的空格
$body = ltrim($body);
rtrim
//删除右边边的空格
trim
//开始和结束的位置或者其他
截取字符
$rest = substr ( "abcdef" , - 1 ); // 返回 "f"
$rest = substr ( "abcdef" , - 2 ); // 返回 "ef"
$rest = substr ( "abcdef" , - 3 , 1 ); // 返回 "d"
------
strstr — 查找字符串的首次出现
$n = 'hello ';
echo strstr($n,'e',false);
若为 TRUE , strstr() 将返回 needle 在 haystack 中的位置之前的部分
第一次出现的位置开始到结尾的字符串
strrchr
最后一次出现的位置直到末尾
strrev — 反转字符串
strpos — 查找字符串首次出现的位置
md5
str_shuffle — 随机打乱一个字符串
explode — 使用一个字符串分割另一个字符串
$array = array( 'lastname' , 'email' , 'phone' );
$com ma_separated = implode ( "," , $array );
格式化字符串
sprintf
{$format参数}
数学函数
floor() //向下
ceil() //向下
max() //返回最大
min() //返回最小
rand — 产生一个随机整数
mt_rand — 生成更好的随机数
round — 对浮点数进行四舍五入
echo round ( 5.045 , 2 ); // 5.05
number_format — 以千位分隔符方式格式化一个数字
fmod — 返回除法的浮点数余数
date函数
date_default_timezone_get() //获得时区;
echo date('Y年m月d日G时:i分:s秒');
time() — 返回当前的 Unix 时间戳
time()-86400 //24*60*60 前一天
strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳
// 日期表达格式
microtime — 返回当前 Unix 时间戳和微秒数
microtime(true) 将返回一个浮点数。
// 获得改程序运行的时间
$start = microtime(true);
$num = 0;
for ($i=0; $i <10000000 ; $i++) {
$num += $i;
}
$end = microtime(true);
echo $end - $start;
uniqid — 生成一个唯一ID
// 获取一个带前缀、基于当前时间微秒数的唯一ID。
getdate — 取得日期/时间信息
//数组类型