二、PHP基础学习之常用命令②

23. 函数

描述:封装代码,即时调用。
作用:减少重复代码,便于项目维护。

<?php 
// 密码算法加密
function getpassword($password){
	return md5($password . 'this is a password');
}

$password1 = '123456';
$password2 = '111111';

echo getpassword($password1);	// 2fd04e998c2f6520d347a5ce3a4509d9
echo getpassword($password2);	// 9f5cbe9b834cc7e72075999bbc3e5ff1
?>

24. 函数定义格式

function 函数名 ([参数1,参数2,…])
{
// 执行语句
// return ;
}

调用方式:
函数名([参数1,参数2,…]);

命名规则:对于函数,命名规则和变量是一样的,但是函数不区分大小写。

25. 函数的调用过程和返回值

编译原理:自上而下,从左到右。
函数调用时,代码执行权进入函数
当函数所有语句执行完毕,函数返回,交回执行权。
或者函数碰到return语句,函数返回,交回执行权。

26. 函数参数的传值方式

值传递: 只是把变量的值传到函数,不影响变量本身
引用传递:把变量的地址传到函数,函数直接操作变量本身,变量会受到影响

<?php
// 值传递
function t1($a){
}

t1($b); 
当调用时,相当于先执行: $a = $b;
?>
<?php
// 引用传递
function t2(&$a){
}

t2($c); 
当调用时,相当于先执行: $a = &$c;
?>

27. 函数中变量的作用域

在PHP的页面中声明的变量叫‘全局变量’。

在函数里声明的变量叫‘局部变量’。

声明全局变量(global)

<?php
global $a = 123;
?>

超级全局变量:在页面的任何部分,包括函数、方法等,都可以直接访问。例:$_GET、$_POST、$_REQUEST等

28. 动态调用函数

可以用变量的值当做函数,并调用函数,例:

<?php
function say(){
	echo 'hello, world';
}

$do = 'say';
$do();	// 相当于 t1()

// 输出结果: hello, world
?>

29. 获取时间戳

时间戳是指自1970-01-01 00:00:00到现在这一瞬间所经过的秒数。

<?php
// 获取时间戳
var_dump(time());		

var_dump(microtime());		

var_dump(microtime(true));					
?>

30. 时间戳格式化

  • d - 一个月中的第几天(从 01 到 31)
  • D - 星期几的文本表示(用三个字母表示)
  • j - 一个月中的第几天,不带前导零(1 到 31)
  • l(‘L’ 的小写形式)- 星期几的完整的文本表示
  • N - 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示- Sunday[星期日])
  • S - 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)
  • w - 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
  • z - 一年中的第几天(从 0 到 365)
  • W - 用 ISO-8601 数字格式表示一年中的星期数字(每周从 Monday[星期一]开始)
  • F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
  • m - 月份的数字表示(从 01 到 12)
  • M - 月份的短文本表示(用三个字母表示)
  • n - 月份的数字表示,不带前导零(1 到 12)
  • t - 给定月份中包含的天数
  • L - 是否是闰年(如果是闰年则为 1,否则为 0)
  • o - ISO-8601 标准下的年份数字
  • Y - 年份的四位数表示
  • y - 年份的两位数表示
  • a - 小写形式表示:am 或 pm
  • A - 大写形式表示:AM 或 PM
  • B - Swatch Internet Time(000 到 999)
  • g - 12 小时制,不带前导零(1 到 12)
  • G - 24 小时制,不带前导零(0 到 23)
  • h - 12 小时制,带前导零(01 到 12)
  • H - 24 小时制,带前导零(00 到 23)
  • i - 分,带前导零(00 到 59)
  • s - 秒,带前导零(00 到 59)
  • u - 微秒(PHP 5.2.2 中新增的)
  • e - 时区标识符(例如:UTC、GMT、Atlantic/Azores)
  • I(i 的大写形式)- 日期是否是在夏令时(如果是夏令时则为 1,否则为 0)
  • O - 格林威治时间(GMT)的差值,单位是小时(实例:+0100)
  • P - 格林威治时间(GMT)的差值,单位是 hours:minutes(PHP 5.1.3 中新增的)
  • T - 时区的简写(实例:EST、MDT)
  • Z - 以秒为单位的时区偏移量。UTC 以西时区的偏移量为负数(-43200 到 50400)
  • c - ISO-8601 标准的日期(例如 2013-05-05T16:34:42+00:00)
  • r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
  • U - 自 Unix 纪元(January 1 1970 00:00:00 GMT)以来经过的秒数
<?php
$a = time();
echo date('Y-m-d 星期N H:i:s', $a);
?>

31. 解析检测日期

<?php 
// 创建时间,参数可以从右往左省略,省略的参数默认本地当前值。
// 参数顺序为: 时,分,秒,月,日,年
echo mktime(17, 35, 20, 11, 27, 2014);
?>
<?php 
// 检测日期是否合法--checkdate
var_dump(checkdate(2, 29, 2000));
?>

32. 字符串定义方式

有四种定义方式:单引号定义、双引号定义、heredoc、nowdoc。
heredoc和nowdoc适用于定义大段文本,二者基本相似,但是heredoc会解析变量,nowdoc不会。

<?php 
// 1、单引号定义
$str1 = 'hello';
var_dump($str1);

// 2、双引号定义
$str2 = "hello";
var_dump($str2);

// 3、heredoc
$str3 = <<<HTML
I		Love
heredoc
$str1
world
HTML;
var_dump($str3);

// 4、nowdoc
$str4 = <<<'INTRO'
I		Love
nowdoc
$str1
world
INTRO;
var_dump($str4);
?>

33. 单双引号的区别

单引号转义的符号较少(’,\)
而双引号能转义大部分符号

双引号里的变量能解析,单引号不行。
单引号速度较快,因为转义的内容较少,而且不用解析变量。

34. 字符串常用函数

①获取字符串长度

<?php
// 非中文字符串长度获取
$str1 = 'hello';
echo strlen($str1);	// 5

// 中文字符串长度获取
$str2 = '我爱中国';
echo strlen($str2);		// 12
// 此处,在utf-8中,一个中文占3个字节,所以,不能使用该函数

// 使用mb_strlen,并声明使用的编码格式
echo mb_strlen($str2, 'utf-8');		// 4
?>

②查找

<?php
$str1 = 'hello';
$str3 = 'e';
if(strpos($str1, $str3) !== FALSE){
	echo $str1 , '中含有' ,  $str3;
}else{
	echo $str1 , '中不含有' ,  $str3;
}
?>

③替换

<?php 
// 把abc替换成day
$str4 = 'good,abc,ad';
// str_replace($a, $b, $c)  $a-需要换的字符串,$b-替换的值,$c-要替换的变量
echo str_replace('abc', 'day', $str4);

// 多个替换、互相替换
// 把’老‘替换成’新‘,’新‘替换成’老‘
$str5 = '老人,小孩,青年,新人,新年,老年';
echo strtr($str5, array('老' => '新', '新' => '老'));
?>

④截取

<?php
// substr($a, $b, $c)  $a-需要截取的变量,$b-截取开始位置,$c-截取结束位置
$str6 = 'good';
echo substr($str6, 0, 2);		// go

// 负数,代表从后往前数
echo substr($str6, 0, -2);		// go
?>

⑤拆分

<?php
// explode($a, $b)	$a-分隔符,$b-变量
$str7 = 'php,html,mysql';
$arr = explode(',', $str7);
var_dump($arr);
?>

⑥合并

<?php
// implode($a, $b)	$a-变量,$b-分隔符
$arr = array('php', 'html', 'mysql');
echo implode($arr, ',');
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值