一、函数
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 | 打印变量信息 |
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_ireplace | str_replace()忽略大小写的版本 |
strchr | 获取指定字符串在另个字符串中首次出现的位置到后者末尾的所有字符串 |
strstr | 同strchr |
stristr | strstr() 函数的忽略大小写版本 |
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, '冰');//返回‘冰’第一次出现后的字符串
?>