php函数定义
‘壹’ php中使用什么函数定义一个自定义函数
php语言中,使用 function来声明一个函数
如: 用function 声明一个名称为get_article_info的函数,函数的参数为 $id
/**
*获得指定的文章的详细信息
*
*@accessprivate
*@paraminteger$id
*@returnarray
*/
functionget_article_info($id)
{
/*获得文章的信息*/
$sql="SELECTa.*,IFNULL(AVG(r.comment_rank),0)AScomment_rank".
"FROM".$GLOBALS['ecs']->table('article')."ASa".
"LEFTJOIN".$GLOBALS['ecs']->table('comment')."ASrONr.id_value=a.article_idANDcomment_type=1".
"WHEREa.is_open=1ANDa.article_id='$id'GROUPBYa.article_id";
$row=$GLOBALS['db']->getRow($sql);
if($row!==false)
{
$row['comment_rank']=ceil($row['comment_rank']);//用户评论级别取整
$row['add_time']=local_date($GLOBALS['_CFG']['date_format'],$row['add_time']);//修正添加时间显示
/*作者信息如果为空,则用网站名称替换*/
if(empty($row['author'])||$row['author']=='_SHOPHELP')
{
$row['author']=$GLOBALS['_CFG']['shop_name'];
}
}
return$row;
}
‘贰’ PHP中构造函数与自定义函数区别
构造方法:用户创建对象时,系统自动调用的方法;
功能:初始化类中必备数据的;
PHP5实现方法:
1)方法名和类名相同的方法
2)PHP中设置的魔术方法(用户执行了某种操作后,系统自动调用的方法):
__construct();
注意:1】如果没有定义构造方法,那么系统会自动的创建一个空魔术构造方法;
2】如果PHP4中的构造方法和PHP5中的构造方法,同时存在,那么PHP5中的构造方法优先使用;普通的成员方法和构造方法的区别和联系:
1】普通的方法如果定义的名字和类名相同,那么就变成构造方法
2】如果构造方法中有参数,那么参数列表要和创建对象时,类名后的小括号参数类表完全一样;
3】普通的方法主要是为了完成某个功能,而构造方法主要是初始化数据
4】普通的方法的可以有返回值,但是构造方法从语法上可以有返回值,但是从意义上不能有返回值;
‘叁’ php变量定义方法
PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
2.普通变量$a = "hello";
3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
6.给变量赋值:传地址赋值(简单引用):
$bar = &$foo; //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV : 执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的.变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
‘肆’ 关于php自定义函数
这个要根据实际情况,需要返回值的话,你可以加return,不需要的话,你可以不加,两者的区别一是在于实际需求不同,二是在于加了return的话,程序运行的响应时间上会稍稍的长一点点,不过,这点时间一般不会有什么影响。比如:
你要输出一个字符串:
function type_str(){
print("123");
}
这样的话,可以,但是如果你要判断是否输出成功了,你就必须这么写:
function type_str(){
if(print("123")){
return true;
}else return false;
}
你可以通过程序的返回值来判断是否输出成功。还有一些自定义函数处理后的结果也是需要返回的,就得用到return。比如:
function add($a , $b){
$sum = $a+$b;
return $sum;
}
函数运行结束后,函数内部定义的变量全部会被销毁,所以,为了你处理的结果不会白白浪费掉,一定要将$sum 返回。
再告诉你一个小窍门:echo和print是不同的,echo不是一个函数,更没有返回值,所以你不能写
if(echo "123") ,但是 print是一个函数,它有返回值,成功则返回true,失败则返回false,可以写:if(print("123")); 之类的。所以print要比echo速度慢一点点,一般情况下用echo就行了。
‘伍’ php中function是什么意思
function 就是自定义函数
如:
functionjia($a){
$b=$a+10;
return$b;
}
'以上就是一个自定义函数,下面看看怎么使用它
echojia(‘10’);
显示结果为20 //这里jia就是自定义的函数名,这样只要给$a任何数字返回的结果都为+10的结果,这样就是自定义了一个函数,这个例子是很简单的~ 不过通过自定义函数你会发现一切变得更好实现,加油 O(∩_∩)O
‘陆’ php function 怎么用
用户自定义函数也称自定义函数,它们不是PHP提供的,是由程序员创建的.由于自己创建了这样的函数,所以就可以完全控制这些函数.因此可以让一个函数完全按照自己希望的方式运行
1,申明函数
在PHP中,定义函数的方法同其他编程语言几乎一样.下面是PHP申明函数的语法结构:
复制代码代码如下:
Function function_name($argument1,$argument2,$argument3,......$argumentn)
{
//函数代码code
Return 返回值;
}
以上语法结构中,关键字的含义如下.
(1)function:用于申明用户自定义函数的关键字.
(2)function_name:要创建的函数名称.该名称将在以后被调用时使用.函数名应该唯一,因为PHP不支持重载.在命名函数的时候,需要遵循和变量命名
相同的原则.但是函数名不能以$开头,而变量可以.
(3)argument:要传递给函数的值.函数可以有多个参数,它们之间用逗号.但是参数项是可选的,可以在调用函数的时候不传递任何参数.
(4)code:是在函数被调用的时候执行的一段代码.如果有两条或者多条语句,则代码必须用大括号"{}"括起来.但是,如果只有一条代码,则不需要大括号.
(5)Return:将调用的代码需要的值返回.任何类型都可以返回,包括列表和对象.这导致函数立即结束它的运行,并且将控制权传递回它被调用的行.
2,无参数函数
代码func_1.php
复制代码代码如下:
<?php
require 'a.php';
echo "我不会被执行!";
?>
3,有参数函数
PHP支持按值传递参数(默认),通过引用传递和默认参数值.可变长度参数列表仅在PHP4和后继版本中被支持.
(1)值传递参数.按值进行参数传递是PHP的默认传递方式.使用这个方法,必须在主程序调用时传递一个值(参数).
代码sum.php
复制代码代码如下:
<?php
function sum ($a,$b)
{
Echo $a+$b;
}
sum(100,20); //开始调用该函数
?>
(2)引用参数.在按照值传递的时候,只有参数的副本传递给被调用的函数.但是在被调用函数内部对这些值的任何修改,都不会影响调用函数
中的原始值.引用传递其实也就是地址传递,将一个变量的地址作为参数传递.
代码valuechange.php
复制代码代码如下:
<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>
(3)默认值参数.使用默认的参数值传递方法,函数必须在调用的时候有一个参数.如果没有使用的值,就把默认值传递给函数参数.默认值必须是常量表达式,不是变量,
类成员或者函数调用.
提示:当使用默认参数时,任何默认参数必须放在非默认参数的右侧;否则,可能函数不会按照预期的情况工作.
代码func_default.php
复制代码代码如下:
<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>
‘柒’ PHP里的自定义函数是什么意思
就是这个函数是自己写的,而不是系统或者所带的库给你的函数。
函数(function),名称出自数学家李善兰的着作《代数学》。之所以如此翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。
函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。
‘捌’ PHP常用函数有哪些
常用函数比较多
如:字符串处理函数,数组函数,日期函数,MySQL函数,文件系统函数,GD函数库等
‘玖’ php中自定义函数正确的语句是
像数学中的函数一样,y=f(x)是函数基本的表达形式,x可看做是参数,y可看做是返回值,即函数定义就是一个被命名的、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。
自定义函数 函数的声明
在编写程序的过程中,我们会经常碰到某些功能模块在PHP中没有提供系统函数,这样就需要我们自己定义函数,即自定义函数,自定义函数的规则如下:
每个函数的第一行都是函数头,由声明函数的关键字function、函数名和参数列表三部分组成。
每个自定义函数都必须使用function关键字声明。
函数名可以代表整个函数,可以将函数命名为任何名称,只要遵循变量名的命名规则即可。但函数名称必须唯一,且不能与系统函数重名。
声明函数时函数名后面的花括号也是必须有的,在花括号中表明了一组可以接受的参数列表,参数就是声明的变量,然后在调用函数时传递给它值。参数列表可以没有,也可以有—个或多个参数,多个参数使用逗号分隔。
函数体位于函数头后面,用花括号括起来。函数被调用后,执行到retun语句或最外面的花括号后结束,返回到调用的程序。
使用关键字return可以从函数中返回一个值,然后返回到调用程序处继续执行。
- Demo
通过函数名称去调用函数。
如果函数有参数列表,还可以通过函数名后面的圆括号传入对应的值给参数,在函数体中使用参数来改变函数内部代码的执行行为。
如果函数有返回值,当函数执行完毕时就会将return后面的值返回到调用函数的位置处。
- Demo
return语句可以向函数调用者返回函数体中任意执行结果值。
在函数体中如果执行了return语句,它后面的语句就不会被执行。
- Demo
<?php
/* 将使用双层for循环输出表格的代码声明为函数,函数名为table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行换背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
函数的调用
不管是自定义的函数还是系统函数,如果函数不被调用,就不会执行。函数被调用后开始执行函数体中的代码,执行完毕返回到调用的位置继续向下执行。调用规则如下:
<?php
/* 将使用双层for循环输出表格的代码声明为函数,函数名为table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行换背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table();
?>
函数的参数
参数列表是由零个、一个或多个参数组成的。每个参数是一个表达式,用逗号分隔。对于有参函数,在PHP脚本程序中和被调用函数之间有数据传递关系。定义函数时函数名后面括号内的表达式称为形式参数(简称“形参”),被调用函数名后面括号中的表达式称为实际参数(简称“实参”),实参和形参需要接顺序对应传递数据。如果函数没有参数列表,函数执行的任务就是固定的,用户在调用函数时不能改变函数内部的一些执行行为。
Demo
<?php
/**
自定义函数table()时,声明三个参数,参数之间使用逗号分隔
@paramstringtableName 需要一个字符串类型的表名
@paramintrows 需要一个整型数值设置表格的行数
@paramintcols 需要另一个整型值设置表格的列数
*/
functiontable(tableName,rows,cols){
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二个参数rows指定表行数
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三个参数cols指定表列数
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table("千度的表格",10,10);
?>
函数的返回值
函数的返回值是函数执行的结果,调用函数的脚本程序不能直接使用函数体里面的信息,但可以通过关键字return向调用者传递数据。return语句注意点如下:
<?php
/**
自定义函数table()时,声明三个参数,参数之间使用逗号分隔
@paramstringtableName 需要一个字符串类型的表名
@paramintrows 需要一个整型数值设置表格的行数
@paramintcols 需要另一个整型值设置表格的列数
*/
functiontable(tableName,rows,cols){
returnStr="这是返回的字符串";
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二个参数rows指定表行数
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三个参数cols指定表列数
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
returnreturnStr;
}
?>
<?php
echotable("千度的表格",10,10);
?>
‘拾’ php中的自定义函数
把php.ini中的错误显示级别调低一点,把display_errors 设置成off,那些notice就没有了,fatal error是因为没有发现那个函数,看是不是路径不对,或者权限的问题,函数的声明
function functionname(){ do something } 函数的调用functionname(); functionname是要声明函数的名称,dosomething是要执行的一些代码。