知识在乎不断的积累和总结,好记性不如烂笔头.读各种书,以博客以记之,为了自己日后学习查阅,也可以和远方来的朋友分享交流。
PHP中的常用函数
其实学习PHP或者Python,最终要的一点就是要熟悉一些常用库或者函数,这样在应用的时候才能游刃有余,下面总结一下常用的函数
查看数据类型
- gettype(传入一个变量) 能够获得变量的类型
- var_dump(传入一个变量) 输出变类型和值
判断数据类型
- is_int/bool/float/string/array/object/null/resource(资源)/scalar(标量)/numeric(是否为数值类型)/callable(是否为函数)
1 2 3 4
| $float = 88.8; $type = gettype($float); var_dump($float); echo $type;
|
强制类型转换
强制类型转换有三种方式:
- 用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
- 变量前加上()里面写上类型,将它转换后赋值给其他变量
- settype(变量,类型) 直接改变量本身
常量和变量
常量
定义 define(常量名,常量值);defined()函数来做安全机制
系统的一些常量:
常量明 |
说明 |
常量明 |
说明 |
LINE |
当前所在的行 |
FILE |
当前文件在服务器的路径 |
FUNCTIOIN |
当前函数名 |
CLASS |
当前类名 |
METHOD |
当前成员方法名 |
PHP_OS |
PHP运行的操作系统 |
PHP_VERSION |
当前PHP的版本 |
TRAIT |
Trait 的名字,php5.4新加 |
DIR |
文件所在的目录 |
NAMESPACE |
当前命名空间的名称(区分大小写 |
1 2 3 4 5 6
| define('MY_NAME','PHP'); echo MY_NAME; echo '我的名字是MY_NAME'; echo '我的名字是' . MY_NAME;
|
变量
全局变量名 |
功能说明 |
全局变量名 |
功能说明 |
$_COOKIE |
得到会话控制中cookie传值 |
$_SESSION |
得到会话控制中session的值 |
$_FILES |
得到文件上传的结果 |
$_GET |
得到get传值的结果 |
$_POST |
得到post传值的结果 |
$_REQUEST |
即能得到get的传值结果,也能得到post传值的结果 |
键名 |
含义 |
$_SERVER[“REQUEST_METHOD”] |
请求当前PHP页面的方法 |
$_SERVER[“REQUEST_URI”] |
请求的URI |
$_SERVER[“SERVER_SOFTWARE”] |
用的是哪一种服务器 |
$_SERVER[“REMOTE_ADDR”] |
客户的IP地址 |
$_SERVER[“SERVER_ADDR”] |
当前服务器的IP地址 |
$_SERVER[“SCRIPT_FILENAME”] |
当前请求文件的路径 |
$_SERVER[“HTTP_USER_AGENT”] |
当前访问这个网址的电脑和浏览器的情况 |
$_SERVER[“HTTP_REFERER”] |
上级来源(用户从哪个地址进入当前网页的) |
$_SERVER[“REQUEST_TIME”] |
当前请求时间 |
- 变量引用(类似于C语言指正)
1 2 3 4 5 6 7 8
| $fo = 5; $bar = &$fo; $bar = 6; echo $bar.'<br />'; echo $fo.'<br />';
|
三元运算符
符号 |
说明 |
$x? 真代码段:假代码段 |
判断是否为真假 ? 真情况 : 假情况; |
``(反引号) |
反引号中间插代命令,执行系统命令,等价于shell_exec函数 |
@ |
单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用 |
=> |
数组下标访问符 |
-> |
对象访问符 |
instanceof |
判断某个对象是否来自某个类,如果是的返回true,如果不是返回false |
函数
回调函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function woziji($one,$two,$func){ if(!is_callable($func)){ return false; } echo $one + $two + $func($one,$two); } function plusx2( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } function jian( $x , $y ){ $result = $x - $y; return $result; } echo woziji(20,10,'plusx2'); echo woziji(20,10,'jian');
|
变量函数
1 2 3 4 5 6 7 8 9 10 11
| function demo(){ echo '天王盖地虎'; } function test(){ echo '小鸡炖蘑菇'; } $fu = 'demo'; $fu();
|
匿名函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $greet = function($name) { echo $name.',你好'; }; $greet('明天'); $greet('PHP学院'); function woziji($one,$two,$func){ if(!is_callable($func)){ return false; } echo $one + $two + $func($one,$two); } woziji(20,30,function( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } );
|
内部函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php function foo() { echo '我是函数foo哟,调一下我才会执行定义函数bar的过程<br />'; function bar() { echo '在foo函数内部有个函数叫bar函数<br />'; } } bar(); foo(); bar(); foo(); ?>
|
变量作用域
我们将函数体外的变量通过$GLOBALS拿到了函数体使用。所以,打破了函数外的变量不能在函数体内使用的限定。
1 2 3 4 5 6 7 8
| $one = 10; function demo(){ $two = 100; $result = $two + $GLOBALS['one']; return $result; } echo demo();
|
使用内置函数
主要掌握如何使用内置函数,就是会看PHP官方文档
使用函数的重点是三块:
- 了解函数的功能,特别是常用函数的功能
- 了解函数的参数
- 了解函数的返回值
针对上面的三块,讲解6个函数,这6个函数,概况了函数的基本用法的全部注意事项:
- 直接返回布尔型,如bool copy ()
- 带有MIXED参数的函数如何调用。Mixed表示任何类型的数据。如Array_unshift()
- 参数中带有&符的参数,一定要传一个变量做为参数。函数里面改变了他的值。
- 带有[]的参数,表示可选项。
- 带有…的参数,表示可以传任意多个参数。
- 带有callback的参数,表示回调函数。需要传一个函数进来。Array_map()
- 函数支持的版本你要了解
1.bool copy ( string $source , string $dest [, resource $context ])
这个函数的功能为: 拷备一个文件
返回值为为: bool型值,就是成功返回true,失败返回false
参数为: 两个字符串的值,一个是copy的源文件,一个为目标文件。第三个参数可选的,不常用,我们不管它。
1 2 3 4 5
| $file = 'example.txt'; $newfile = 'example.txt.bak'; if (!copy($file, $newfile)) { echo "failed to copy $file...\n"; }
|
2.int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )
Mixed表示任何类型的数据。
功能: 操作一个数组,向数组中之前插入其他类型的参数。
返回值: int 类型,可能就是插入成功最后的个数
参数: 第一个参数为&符,也就是在操作的过程中,改变了第一个参数的值。引用传参。也就是操作这个数组,向这个数组中传入参数。会直接改变这个数组的值。第二个参数为mixed,因为数组可以存入多个不同的类型.mixed是指混合的意思。因此,mixed是指可传入任意类型。第三个数数加了中括号,我们所有遇到中括号的。都是指后面的参数可传,也可以不传。第四,最后还看到了三个…(省略号)。代表可以传入任意多个参数。
1 2 3 4 5 6 7 8 9 10 11
| $queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry"); print_r($queue);
|
3、bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
功能:传入一个回调函数,将数组的原来的组操作,并且发生变化。
返回值:bool 值 也就是意味着,提示成功或者失败
参数:第一个参数是要操作的数组。第二个参数是callback 代表着可以传入函数或者匿名函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); function test_alter(&$item1, $key, $prefix) { $item1 = "$prefix: $item1"; } function test_print($item2, $key) { echo "$key. $item2<br />\n"; } echo "Before ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo "... and after:\n"; array_walk($fruits, 'test_print');
|
文件包含函数
函数 |
包含失败 |
特点 |
Inlcude |
返回一条警告 |
文件继续向下执行。通常用于动态包含 |
Require |
一个致命的错 |
代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once |
返回一条警告 |
除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once |
一个致命的错 |
除了原的功能一外,会做一次once检测,防止文件反复被包含 |
日期常用函数
在正式学习日期函数前大家要了解几个概念:
- 时区:1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。
- 世界时:如果对国际上某一重大事情,用地方时间来记录,就会感到复杂不便.而且将来日子一长容易搞错。因此,天文学家就提出一个大家都能接受且又方便的记录方法,那就是以格林尼治(英国某地区)的地方时间为标准。
- unix时间戳:从Unix纪元(1970 年 1月1日零时)开始到一个时间经过的秒数。
时间函数有:
- 设置时区:
- date_default_timezone_get()
- date_default_timezone_set()
1 2 3 4 5 6
| define('TIME_ZONE','Asia/shanghai'); date_default_timezone_set(TIME_ZONE); echo date_default_timezone_get (); echo date('Y-m-d H:i:s');
|
声明:
内容参考:《7天学会PHP》