第七章 php自定义函数实现代码


Posted in PHP onDecember 30, 2011

7.1.标准函数
标准php发行包中有1000多个标准函数,这些标准函数都是系统内置的,不需要用户创建就可以直接使用
如:

<?php 
echo md5('123456'); 
echo '<br/>'; 
echo sha1('123456'); 
echo '<br/>'; 
echo pi(); 
?>

output
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
7.2.自定义函数
7.2.1函数命名基本原则:
1.函数名不能和已有的函数名重名。
2.函数名只能包含字母、数字和下划线。
3.函数名不能以数字开头
7.2.2基本使用:用function进行声明
<?php 
//创建函数  
function funcCountArea($radius) 
{ 
return $radius*$radius*pi(); 
} 
//使用函数 
$area = funcCountArea(20); 
echo $area; 
echo '<br/>'; 
$area2 = funcCountArea(30); 
echo $area2; 
?>

output
1256.63706144
2827.43338823
7.2.3按值传参
<?php 
$a = 5; 
function funcChange($a) 
{ 
$a = 2 * $a; 
} 
funcChange ($a); 
echo $a; 
?>

output
5
7.2.4按引用传参
<?php 
$a = 5; 
function funcChange(&$a) 
{ 
$a = 2 * $a; 
} 
funcChange ($a); 
echo $a; 
?>

output
10
7.2.5返回多个值的函数调用
<?php 
function funcUserInfo($username,$password) 
{ 
$userInfo = array($username,$password); 
return $userInfo; 
} 
$arr = funcUserInfo('anllin','123456'); 
print_r($arr); 
?>

output
Array ( [0] => anllin [1] => 123456 )
7.2.6另一种返回多个值的函数调用(实用:推荐)
<?php 
function funcUserInfo($username, $password) 
{ 
$userInfo [] = $username; 
$userInfo [] = $password; 
return $userInfo; 
} 
$arr[] = funcUserInfo ( 'Bob', '512655' ); 
$arr[] = funcUserInfo ( 'John', '458736' ); 
$arr[] = funcUserInfo ( 'Mark', '925472' ); 
print_r ( $arr ); 
?>

output
Array ( [0] => Array ( [0] => Bob [1] => 512655 ) [1] => Array ( [0] => John [1] => 458736 ) [2] => Array ( [0] => Mark [1] => 925472 ) )
注意:函数调用是不区分大小写的,但是变量名是区分大小写的。
7.2.7理解作用域:
局部变量:
在函数内部声明的变量。
全局变量:
在函数外部声明的变量。
7.2.8局部变量转换成全局变量
<?php 
$a = 5; 
function funcChangeValue() 
{ 
global $a; 
$a = 10; 
} 
funcChangeValue(); 
echo $a; 
?>

output
10
7.2.9超级全局变量$GLOBALR的使用
<?php 
$GLOBALS['a'] = 5; 
function funcChangeValue() 
{ 
$GLOBALS['a'] = 10; 
} 
funcChangeValue(); 
echo $GLOBALS['a']; 
?>

Output
10
7.3.文件包含
7.3.1 Include的使用,可以包含相同的文件多次
<?php 
include 'demo1.php'; 
include 'demo1.php'; 
include 'demo1.php'; 
?>

output
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
--------------------------------------------------------------------------------
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
--------------------------------------------------------------------------------
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
7.3.2 include_once使用上和include没什么区别,但是调用多次只会包含相同的文件一次
<?php 
include_once 'demo1.php'; 
include_once 'demo1.php'; 
include_once 'demo1.php'; 
?>

output
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
7.3.3 require() 语句包含并运行指定文件。
<?php 
require 'demo1.php'; 
require 'demo1.php'; 
require 'demo1.php'; 
?>

output
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
--------------------------------------------------------------------------------
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
--------------------------------------------------------------------------------
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359
7.3.4 require_once() 语句在脚本执行期间包含并运行指定文件.但是不重复包含相同的文件。
<?php 
require_once 'demo1.php'; 
require_once 'demo1.php'; 
require_once 'demo1.php'; 
?>

output
e10adc3949ba59abbe56e057f20f883e
7c4a8d09ca3762af61e59520943dc26494f8941b
3.14159265359s
7.3.5 include与require的区别
Include后面如果还有其他代码,当调用include出错时,后面的代码还会继续执行,但是require则不会。
Include在调用一个不存在的文件时,会给出警告,但是会继续执行后面的代码。
<?php 
include 'demo111.php'; 
echo('this is demo13.php'); 
?>

output
Warning: include(demo111.php) [function.include]: failed to open stream: No such file or directory in D:\AppServ\www\Basic7\demo13.php on line 2
Warning: include() [function.include]: Failed opening 'demo111.php' for inclusion (include_path='.;C:\php5\pear') in D:\AppServ\www\Basic7\demo13.php on line 2
this is demo13.php
Require在调用一个不存在的文件时,会给出一个错误,并中止代码的执行。
<?php 
require 'demo111.php'; 
echo('this is demo14.php'); 
?>

Output
Warning: require(demo111.php) [function.require]: failed to open stream: No such file or directory in D:\AppServ\www\Basic7\demo14.php on line 2
Fatal error: require() [function.require]: Failed opening required 'demo111.php' (include_path='.;C:\php5\pear') in D:\AppServ\www\Basic7\demo14.php on line 2
7.4.魔法常量
名称 描述
_FILE_ 当前文件名
_LINE_ 当前行号
_FUNCTION_ 当前函数名
_CLASS_ 当前类名
_METHOD_ 当前方法名
所谓的魔法常量,并不是真的常量,而是根据场合去获取固定值的变量
<?php 
echo __FILE__; 
echo '<br>'; 
echo __LINE__; 
echo '<br>'; 
function funcTest() 
{ 
echo __FUNCTION__; 
} 
funcTest(); 
?>

output
D:\AppServ\www\Basic7\demo15.php
5
funcTest
PHP 相关文章推荐
PHP新手上路(十一)
Oct 09 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP上传文件参考配置大文件上传
Dec 16 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 PHP
第六章 php目录与文件操作
Dec 30 #PHP
第五章 php数组操作
Dec 30 #PHP
第四章 php数学运算
Dec 30 #PHP
第三章 php操作符与控制结构代码
Dec 30 #PHP
第二章 PHP入门基础之php代码写法
Dec 30 #PHP
php 短链接算法收集与分析
Dec 30 #PHP
php的大小写敏感问题整理
Dec 29 #PHP
You might like
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
jquery tools之tooltip
2009/07/25 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
JS简单实现数组去重的方法分析
2017/10/14 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python实现简单登陆流程的方法
2018/04/22 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
pytorch中图像的数据格式实例
2020/02/11 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
业务经理的岗位职责
2013/11/16 职场文书
物业经理自我鉴定
2014/03/03 职场文书
安全生产承诺书
2014/03/26 职场文书
房屋公证委托书
2014/04/03 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
导游词之河北邯郸
2019/09/12 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL