核心内容摘要
GIS开发薪资和哪些因素有关?学历?工作经验?行业?
函数的定义与调用初识函数在程序开发中通常通过定义一个函数来实现特定的功能从而使代码可以被复用避免重复编写相同功能的代码。
函数的基本用法function 函数名([$参数1, $参数2]) { 函数体 [return 函数返回值;] }对于函数而言设置参数的方式不同其调用方式也不同。
无参函数定义无参数的函数时不需要传递参数函数体用于完成指定的功能。
示例无参函数入口页面index.php?php function sout() { return Hello PHP; } echo sout();示例效果有参函数定义有参数的函数时函数内部会根据用户传递的参数进行操作。
示例有参函数入口页面index.php?php function add($a, $b){ return $a $b; } echo 1 2 .add(1,
;示例效果引用传参当需要函数修改它的参数值时需通过函数参数的引用传递来实现即引用传参。
在函数中使用引用传参的基本用法function 函数名($参数) { 函数体 [return 函数返回值;] }示例引用传参入口页面index.php?php function extra($message){ $message $message. PHP; } $message hello; extra($message); echo $message;示例效果参数默认值在设置函数参数时还可以为其指定默认值即可选参数当调用者未传递该参数时函数将使用默认值进行操作。
指定函数的参数默认值的基本用法function 函数名($参数 参数默认值) { 函数体 [return 函数返回值;] }示例参数默认值入口页面index.php?php function say($name, $message Hello~){ return $name . say . $message; } echo say(Tom);示例效果参数类型在自定义函数时可以指定参数具体是哪种数据类型。
在 PHP 5 中不能直接指定诸如整数、浮点数、字符串等基本数据类型作为参数类型。
在 PHP 7 中类型声明得到了显著增强可以更精确地指定各种基本数据类型。
一般情况下指定参数类型的方式是弱类型参数设置在调用函数时如果传递的参数不是指定的类型程序会将其强制转换成指定类型再进行操作。
设置函数的弱类型参数的基本用法function 函数名(参数类型 $参数) { 函数体 [return 函数返回值;] }示例参数类型入口页面index.php?php function add(int $a, int $b){ return $a $b; } echo
6
8 .add(
6,
3.
;示例效果在 PHP 中还可以将函数参数设置为强类型参数当用户传递的参数类型不符合函数的定义时程序会报错提醒。
设置函数的强类型参数的基本用法declare(strict_types
; function 函数名(参数类型 $参数) { 函数体 [return 函数返回值;] }示例设置函数的强类型参数入口页面index.php?php declare(strict_types
; function add(int $a, int $b) { return $a $b; } echo
6
8 .add(
6,
3.
;示例效果可变参数列表从 PHP
6 及以上版本开始在定义函数时可以指定可变参数列表即函数可以接受不定数量的参数。
指定函数的可变参数列表的基本用法function 函数名(...$参数) { 函数体 [return 函数返回值;] }在指定函数的可变参数列表时需要注意可变参数列表只能用在参数列表的末尾。
可变参数列表的数量可以为 0但不能省略。
在使用可变参数列表时函数会自动将参数转化为数组可以使用数组相关的函数来操作这些参数。
示例可变参数列表入口页面index.php?php function num(...$num) { echo var_dump($num); } echo num(1, 2, 3, 4, 5, 6,
;示例效果函数返回值类型从 PHP 7 开始引入了对函数返回值类型声明的强大支持允许明确指定函数返回的数据类型。
指定函数返回值类型的基本用法declare(strict_types
; function 函数名(参数类型 $参数) : 返回值类型 { 函数体 [return 函数返回值;] }示例函数返回值类型入口页面index.php?php declare(strict_types
; function returnIntValue(int $value) : int { // int float float return $value
0; } echo returnIntValue(
;示例效果函数中变量的作用域变量只有在其作用范围内才可以被使用这个作用范围称为变量的作用域。
在函数中定义的变量称为局部变量在函数外定义的变量称为全局变量。
默认情况下在函数中不能使用全局变量。
局部变量的改变不会对全局变量有任何影响。
示例函数中变量的作用域入口页面index.php?php $sum 0; function test() { $sum 36; return $sum; } echo test() .test(); echo br; echo $sum .$sum;示例效果若要在函数中使用全局变量可以使用 global 关键字或超全局变量 $GLOBALS。
global 关键字的基本用法function 函数名() { global $全局变量名; }超全局变量 $GLOBALS 的基本用法function 函数名() { $GLOBALS[全局变量名]; }示例全局变量入口页面index.php?php $sum1 0; $sum2 100; function test() { global $sum1; echo 全局变量 $sum1 .$sum1; echo br; echo 全局变量 $sum2 .$GLOBALS[sum2]; } test();示例效果函数的嵌套调用嵌套调用嵌套调用是指在调用一个函数的过程中调用另一个函数。
示例嵌套调用入口页面index.php?php function sum($sub1, $sub
{ return $sub1 $sub2; } function avg($sub1, $sub
{ $sum sum($sub1, $sub
; return $sum / 2; } echo avg(92,
; echo br; echo avg(78,
;示例效果递归调用递归调用时函数嵌套中的一种特殊的调用是指函数在其函数题内调用自身的过程。
示例递归调用入口页面index.php?php function factorial($n) { if ($n
{ return 1; } else { return $n * factorial($n -
; } } echo factorial(
;示例效果函数的高级应用静态变量在 PHP 函数中执行完函数后在函数中定义的变量会被释放或者被重新赋值若想在函数执行完成后依然保留局部变量的值可以使用静态变量。
静态变量的基本用法static $变量名 变量值;示例静态变量入口页面index.php?php function num1() { $num 0; $num; // num1函数中的变量$num在每一次调用函数时都会重新被赋值 return $num; } function num2() { static $num 0; // 静态变量 $num; // num2函数中定义了静态变量变量$num在每一次调用函数时不会重新被赋值 // 重复调用num2函数变量$num自增 return $num; } for($i 0; $i 5; $i) { echo num1()., ; } echo br; for($i 0; $i 5; $i) { echo num2()., ; }示例效果可变函数可变函数就是将一个变量变成一个函数的形式PHP 会自动寻找与变量值同名的函数并且尝试执行它。
可变函数的基本用法$变量名 变量值; $变量名();在使用可变函数时需要注意变量值可以是用户自定义的函数名称也可以是 PHP 内置的函数名称但是变量值必须是实际存在的函数的名称。
使用可变函数可以增加程序的灵活性但是滥用可变函数会降低 PHP 代码的可读性。
示例可变函数入口页面index.php?php function test() { echo Hello PHP; } $functionName test; // $functionName() test() $functionName();示例效果回调函数回调函数是指将一个函数作为参数传递给另一个函数然后在适当的时候被调用执行。
示例回调函数入口页面index.php?php function sum($a, $b) { return $a $b; } // call_user_funch函数可以接受用户自定义的回调函数作为参数 // 参数1回调函数名 // 参数...传递给回调函数的参数 // call_user_func函数执行后将调用sum函数并返回执行结果 echo call_user_func(sum, 1,
;示例效果回调函数具有很大的灵活性和实用性可以用于数据排序、数组过滤、文件处理等场景。
匿名函数匿名函数就是没有函数名称的函数也称为闭包函数其强调的是函数本身没有名称需要通过变量来引用和使用。
匿名函数的基本用法$变量名 function() { 函数体 [return 函数返回值;] }; $变量名();示例匿名函数入口页面index.php?php $sum function ($a, $b) { return $a $b; }; echo $sum(1,
;示例效果若要在匿名函数中使用外部的变量可以使用 use 关键字来实现。
匿名函数使用外部变量的基本用法$变量名 function() use ($变量名) { 函数体 [return 函数返回值;] }; $变量名();示例匿名函数使用外部变量入口页面index.php?php $c 100; $sum function ($a, $b) use($c) { return $a $b $c; }; echo $sum(1,
;示例效果匿名函数还可以作为函数的参数传递实现回调函数。
示例匿名函数作为函数的参数传递入口页面index.php?php function calculate($a, $b, $func) { // 调用回调函数func return $func($a, $b); } // 调用calculate函数时传入一个回调函数 echo calculate(10, 20, function ($a, $b) { return $a $b; }); echo br; echo calculate(10, 20, function ($a, $b) { return $a * $b; });示例效果PHP 内置函数字符串函数字符串的基本函数名称描述strlen($string)获取字符串的长度一个英文字符、一个空格的长度均为 1UTF-8 字符集的中文字符长度为 3GBK 字符集的中文字符长度为 2mb_strlen($string)获取字符串的长度1 个中文字符长度为 1在使用该函数时需确保 PHP 配置文件开启 mbstring 扩展strpos($string, $find)在字符串中查找另一个字符串首次出现的位置strrpos($string, $find)在字符串中查找另一个字符串最后一次出现的位置str_replace($find, $replace, $string)替换字符串中的一些字符substr_replace($string, $replace, $start)替换字符串的一部分substr($string, $start, $length)截取字符串的一部分explode($separator, $string)将字符串按照指定的分隔符分割成数组implode($separator, $array)将数组元素连接成一个字符串trim($string, $charlist)去除字符串两端的空白字符或其他预定义字符str_repeat($string, $repeat)重复指定的字符串指定的次数strcmp($string1, $string
比较两个字符串是否相等该函数二进制安全且区分大小写函数返回 0 即字符串相等示例字符串函数入口页面index.phpdivstrlenmb_strlen获取字符串长度/div ?php $str1 多仔的PHP笔记; ? div$str1?php echo $str1; ?/div div$str1的长度是?php echo strlen($str
; ?/div div$str1的长度是?php echo mb_strlen($str
; ?/div br divstrposstrrpossubstr截取字符串/div ?php $str2 /Users/duozai/Desktop/demo.png ? div$str2?php echo $str2; ?/div divduozai 第一次出现的位置?php echo strpos($str2, duozai); ?/div div/ 最后一次出现的位置?php echo strrpos($str2, /); ?/div div截取文件名?php echo substr($str2, strrpos($str2, /)
; ?/div br divstr_replacesubstr_replacestr_repeat替换字符串/div ?php $str3 00 13200077700 ? div$str3?php echo $str3; ?/div div将 00 替换成 86 ?php echo str_replace(00, 86, $str
; ?/div div将手机号中间四位替换成*?php echo substr_replace($str3, str_repeat(*,
, 7,
; ?/div br divexplodeimplode转换数组与字符串/div ?php $str4 1,2,3,4,5,6,7 ? div$str4?php echo $str4; ?/div div将字符串转换成数组?php var_dump(explode(,, $str
); ?/div div将数组转换成字符串?php echo implode(-, explode(,, $str
); ?/div br divtrim去除字符串两端符号/div ?php $str5 ,1,2,3,4,5,6,7, ? div$str5?php echo $str5; ?/div div去除两端逗号?php echo trim($str5, ,); ?/div br divstrcmp判断字符串是否相等/div ?php $str6 hello; ? ?php $str7 Hello; ? div$str6?php echo $str6; ?/div div$str7?php echo $str7; ?/div div$str6与$str7是否相等?php echo strcmp($str6, $str
; ?/div示例效果数学函数数学的基本函数名称描述abs($number)返回一个数的绝对值ceil($number)返回一个数向上取最接近的整数floor($number)返回一个数向下取最接近的整数round($number)返回一个数的四舍五入的整数min(…$value)返回一个数组中的最小值或者几个指定值中的最小值max(…$value)返回一个数组中的最大值或者几个指定值中的最大值pi()返回圆周率的值pow($x, $y)返回一个数的指定次幂sqrt($number)返回一个数的平方根rand($min, $max)返回一个随机整数示例数学函数入口页面index.phpdiv-123的绝对值是?php echo abs(-
; ?/div div
1
8向上取整是?php echo ceil(
19.
; ?/div div
1
8向下取整是?php echo floor(
19.
; ?/div div
1
8四舍五入是?php echo round(
19.
; ?/div div2, 4, 8的最小值是?php echo min(2, 4,
; ?/div div2, 4, 8的最大值是?php echo max(2, 4,
; ?/div div圆周率的值是?php echo pi(); ?/div div2的3次方是?php echo pow(2,
; ?/div div9的平方根是?php echo sqrt(
; ?/div div
的随机数是?php echo rand(1,
; ?/div示例效果时间和日期函数PHP 通过 UNIX 时间戳处理时间UNIX 时间戳定义了从格林尼治时间 1970 年 1 月 1 日 0 时 0 分 0 秒起至当前时间的总秒数。
时间和日期的基本函数名称描述time()获取当前的 UNIX 时间戳date($format[, $timestamp])格式化一个本地时间或日期mktime($hour, $minute, $second, $month, $day, $year)获取指定日期的 UNIX 时间戳strtotime($string)将字符串转换成 UNIX 时间戳microtime()获取当前 UNIX 时间戳和微秒数日期时间格式的基本字符名称描述年Y4 位数字表示的完整年份y2 位数字表示的年份L是否为闰年1 是/0 否月m数字表示的月份有前导 0返回值