第七章 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
功能强大的php文件上传类
Aug 29 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
PHP中数组转换为SimpleXML教程
Jan 27 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统计时间和内存使用情况示例分享
2014/03/13 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
js函数的延迟加载实现代码
2012/10/11 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
vue 实现单选框设置默认选中值
2019/11/07 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
Python实现购物系统(示例讲解)
2017/09/13 Python
python基础 range的用法解析
2019/08/23 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL