PHP开发宝典-PHP函数(待续...)

一、函数

1、定义和调用函数

function func_name($str1, $str2,...$strn){
    func_body;
}
2、函数间传递参数

1)值传递

将实参传递给函数的形参,不会改变实参的值。

<?php
function example($m)
{
    $m += 10;
	echo '在函数内部:\$m = '.$m."<br>";
}
$m = 1;
example($m);
echo '在函数外部:\$m = '.$m;
?>
结果为:

在函数内部:\$m = 11
在函数外部:\$m = 1

2)引用传递

就是在形参前面加一个&,表明传递的是变量的地址。

<?php
function example(&$m)
{
    $m += 10;
	echo '在函数内部:\$m = '.$m."<br>";
}
$m = 1;
example($m);
echo '在函数外部:\$m = '.$m;
?>
结果:

在函数内部:\$m = 11
在函数外部:\$m = 11

3)默认参数

在函数的参数列表末尾,并且指定默认值。

<?php
function value($price, $tax=0.2)
{
  $price = $price + ($price * $tax);
  return $price;
} 
echo value(100, 0.4)."<br>";
echo value(100);
?>
结果:

140
120

注意:默认参数一定要放在非默认参数的右侧。

3、函数返回值

<?php
function value($price, $tax=0.2)
{
  $price = $price + ($price * $tax);
  return $price;
} 
echo value(100);
?>

函数只能返回一个参数,如果想返回多个参数,可以在函数内部建立一个数组,将返回的参数存储到数组中返回。

4、变量函数

<?php
function come()
{
    echo "来了"."<br>";
} // end func
function go($name = "xyw")
{
    echo $name."走了"."<br>";
} // end func
function back($string)
{
    echo $string."又回来了!";
} // end func
$func = 'come';
$func();
$func = 'go';
$func();
$func = 'back';
$func('scy');
?>

5、函数引用

对函数的引用,其实就是对函数返回结果的引用。

<?php
function &test()
{
	static $a = 0;
	$a += 1;
	echo $a."<br>";
	return $a;
} 
$str = test();
$str = 5;
$str = test();

$str = &test();
$str = 5;
$str = &test();
?>
结果:

1
2
3
6

解释:

$str = test();
$str = 5;
$str = test();

这是普通函数调用,只是将函数test()的返回结果赋值给str,str的改变对函数内的变量$a没有任何影响。

$str = &test();
$str = 5;
$str = &test();

这是函数引用,执行$str = &test(),是将函数内的变量$a和外部变量$str指向了同一块内存地址,这样在外部将$str改变时,同时改变了函数内部$a的值。

6、取消引用

unset()函数。

二、变量函数库

是对变量使用的函数。

函数说明
empty判断变量是否为空
gettype获取变量的类型
inval获取变量的整数值
is_array判断是否为数组
is_int判断是否为整数
is_numeric判断变量是否为数字或者数字组成的字符串
isset判断变量是否被赋值
print_r打印变量
settype设置变量的类型
unset取消变量的引用
var_dump打印变量信息
使用isset和empty,判断用户名和密码是否为空。

login.php

<title>登录</title>
<form action = "login_index.php" method = "post">
用户名:<input type = "text" name = "user"/>
<br>
密码:<input type = "text" name = "pass"/>
<br>
<input type = "Submit" name = "Submit" value = "登录"/>
</form>
login_index.php

<?php
 include"login.php";
 if(isset($_POST['Submit']) && $_POST['Submit'] == '登录'){
	 $user = $_POST['user'];
	 $pass = $_POST['pass'];

	 if(empty($user) || empty($pass)){
		echo "<script>alert('用户名或者密码不能为空!')</script>";
	 }
 }
?> 
三、字符串函数库

函数功能
explode分隔字符串
addcslashes实现转移字符串中的字符,即在指定的字符串前加反斜杠
echo输出字符串
ltrim删除字符串前面的空格
md5计算字符串的md5码
strlen字符串长度
str_replace将某个指定的字符串替换为另一个字符串
str_repeat将指定的字符串重复输出
str_ireplacestr_replace()忽略大小写的版本
strchr获取指定字符串在另个字符串中首次出现的位置到后者末尾的所有字符串
strstr同strchr
stristrstrstr() 函数的忽略大小写版本
substr_replace将字符串中部分字符串替换为指定的字符串
substr截取字符串
函数原型:

1、array explode ( string $separator , string $string [, int $limit ] )
$separator为分隔符;$string为要被分隔的字符串。如果¥separator为空,返回false
2、string addcslashes ( string $str , string $charlist )
$str 为要操作的字符串 $charlist中包含需要转义的字符
3、string md5 ( string $str [, bool $raw_output = false ] )
$str 为要转换的字符串 $raw_output为true时,以二进制格式输出
4、mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
$subject是要被操作的字符串;$search是$subject中的字符串;$replace是被替换成的字符串
5、string str_repeat ( string $input , int $multiplier )
$multiplier是重复的次数
6、string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
$haystack是要操作的字符串;$needle是要查找的字符串
7、mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] )
8、string substr ( string $string , int $start [, int $length ] )
实例:

<?php

$str = "电脑@空调@冰箱@电视";
$str_array = explode("@", $str);
foreach($str_array as $value){
	echo $value."<br>";
}
echo md5($str)."<br>"; //输出md5
var_dump($str_array); //输出变量信息
echo "<br>";
echo str_ireplace('@','*',$str); //用*替换$str中的@ 
echo "<br>";
echo str_repeat($str,4);//重复输出4次
echo "<br>";
echo strchr($str, '冰');//返回‘冰’第一次出现后的字符串
?>












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值