PHP函数

使用简单函数

<?php
//打印文字为粗体函数
function printBold($text)
{
print("<b>$text</b>");
}
print("这一行不是粗体<br>\n");
printBold("这一行是粗体");
print("<br>\n");
print("这一行不是粗体");
?>


                                            PHP函数

系统(内置)函数

PHP有很多标准的内置函数,这些函数分为两部分,一部分是核心函数,例如字符串和变量函数,还有一些函数需要和特定的PHP扩展模块一起安装,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。例如,要使用图像函数i默认值英文magecreateturecolor(),需要在安装PHP的时候加上GD(一个图像处理库linux系统安装)的支持。或者,要使用MySQL数据库的连php接函数m系统运维面试题及答案ysql_connect(),就需要在安装PHP的时候加上MySQL数据库的支持。要知道当前使用的PHP有哪些函数,可以调用p系统运维工程师hpinfo()函数或者get_loaded_extensions()函数linux重启命令得到PHP加载了哪些扩展库。

<?php
phpinfo();
?>


                                            PHP函数

自定义函数

<?php
//调用etc函数
etc();
//定义foo函数
function foo()
{
echo "我是函数foo\n";
//定义bar函数
function bar()
{
echo "我是函数bar\n";
}
}
//定义etc函数
function etc()
{
echo "我是函数etc\n";
}
//调用foo函数
foo();
//调用bar函数
bar();
?>


                                            PHP函数
在目前的PHP版本中,函数具有全局属性,也就是定义一个函数后,可以在程序的任何地方使用,定义函linux重启命令数的位置可以在程序的任何地方,甚至可以在php教程另有一个函数内部。

上述代码分linux重启命令析:代码第四行调用etc函数,而etc函数是在第19-调用函数是什么意思22行调用函数定义的,由此可见Pjava语言HP中,函数可java模拟器以定义在需要调用代码之后。第7-16行定义了foo函数,在foo函数中又定义了bar函数,这叫函数中linux的函数,在实际项目中很少又这样的定义。最后的几行中调用了foo函数和调用函数是什么意思bar函数,运行正常,再次证明了PHP函调用函数时传递的实参个数必须与数可以定义在任何地方,且在任何地方均可调用。

由于PHP函数具有全局特性,造成了函数不能重名。

函数参数

函数的参数是用来和函数沟通的途径,参数以逗号作为分隔符。

调用函数时,需要给参数传值,传值有3种方式:

1.按值传递:函数默认按值传递,相php教程当于将值赋给了参数,以下是例子

<?php
$n = 3; //初始化一个变量‘
//定义函数
function byvalue($num)
{
$num = $num + 1;	//改变参数的值
echo $num;
}
byvalue($n);
echo "<br>";	//换行
echo $n;
?>


                                            PHP函数

代码分析:第三行初始化了变量
n



3


6

9






b
y
v
a
l
u
e















1




11


系统运维工作内容



b
y
v
a
l
u
e




n的值为3,第6-9行定义了函数byvalue,实现的功能是将字段默认值收到的参数值加1操作,第11行调用函数byvalue,给参数
n369byvalue1字段默认值11byvaluejavaee
num的值为
n
(
3
)



b
y
v
a
l
u
e



n(3),函数bylinux必学的60个命令value实现了
n(3)byvalue
num++,并打印出结果4,完成函数调用。

2.引用传递:引用传递和C语言的传值类似,传值时一个拷贝,引用传递是传递了一个别名,而不是拷贝一个值。

<?php
$n = 3;	//初始化一个变量
//定义函数
function byvalue(&$num)	//参数前多了一个&符号
{
$num = $num + 1;	//改变参数的值
echo $num;
}
byvalue($n);
echo '<br>';
echo $n;
?>


                                            PHP函数
在按值传递种,$n的值是3,现在的结果是4,这就是引用传递。如果希望允许函数修改它的参数值,必须引用传递参数默认值是什么意思

3.默认值:函数的参数可以设置一个默认值

<?php
$n = 3;	//初始化一个变量
//定义函数
function byvalue($num=1)
{
$num = $num + 1;	//改变参数的值
echo $num;
}
byvalue($n);
echo '<br>';
byvalue();
?>


                                            PHP函数
代码分析:这次修改是在参数
n
u
m
java面试题





java怎么读





12

14







b
y
v
a
l
u
e








12








num后面添加了一个默认值,第12和14行各调用了一次byvaljavaeeue函数,不同的是第12行调用给了参数值
num调用函数时将为形参分配内存单元1214byval调用函数判断素数ue12
n,第14行调用时没有给参数,结果显示给了没有给参数的结果为2,这说明当函数参数有默认值的时候,调用函数时没有给参数,那么函数使用默认值。

注意:默认值必须是常量表达式,不是变量、类成员、或者函数调用等

在函数调用函数c语言参数使用默认值时,如果有多个参数,那么需要将有默认值参数放在任何非默认值参数的右边。

<?php
function hello($name = 'leo', $time)
{
return '你好, ' . $name . '。 现在的时间是: ' . $time;
}
echo hello('9点');
?>

运行结果将会有警告且,不是预期结果

<?php
function hello($time, $name = 'leo')
{
return '你好, ' . $name . '。 现在的时间是: ' . $time;
}
echo hello('9点');
?>


                                            PHP函数

返回值

函数值通过使用可选的返回语句返回。通常使用return语句,任何类型都可以返回,其中包括列表和对象。在return语句在函数中,那linux系统安装么执行后将立即停止该函数运行,并且将控制权传递会它被调用的行php是什么语言,函数不能返回多个值,但可以返回一个数组得到多个值。同样,函数也可以返回一个引用,这和变量的引用类似,只linux常用命令需要在函数前加上符号"&调用函数时传递的实参个数必须与"。

<?php
function &returnReference()
{
$someReference = "leo";
return $someReference;
}
$reference =&returnReference();
?>

变量$reference是函数returnReference返回的一个引用。

动态调用函数

假设一个调用函数怎么用状况,在一个项调用函数时参数可以是表达式目中,客户要求自己设置字符串转换成大写或小写。

<?php
/*
设置字符转换方式,小写strtolower,大写strtoupper
*/
$functionName = 'strtolower';	//设置为小写
$string = 'LEO';	//要处理的字符
//判断用户设置
if ($functionName == 'strtolower')
{
//调用函数处理
$string = strtolower($string);
}
?>

改进java面试题

<?php
/*
设置字符转换方式,小写strtolower,大写strtoupper
*/
$functionName = 'strtolower';	//设置为小写
$string = 'LEO';	//要处理的字符
//判断用户设置
$functionName($string);
?>

这就是PHP中动态调用函数linux操作系统基础知识

注意:动态调用函数不能用于语言结构,例如echo(),print(),unset(),isset(),empty(),include(),require()及类似语句,除非将这些语言结构冲重新用自定义函数包装起来,然后使用包装函数调用

作用域

问题:在PHP代码中,变量和函数产生后,其有效期有多长,在哪些结构里面起作用,这就有关作用域了

1.局部作用域:

局部作用域即只是在某一个区间有效。
<?php
function text()
{
$abc = 123;
}
echo $abc;
?>

此代码将会报错;因为变量$abc在text函数外是无效的。

<?php
$abc = 123;
function text()
{
echo $abc;
}
text();
?>

此代码也会报错。

如果函数内需要使用函数外定义的变量该如果做呢?
<?php
$abc = 123;
function text()
{
global $abc;
echo $abc;
}
text();
?>

这次将不会报错

代码分析:这次修改在函数中加入了关键字"global",后面是变量$abc,这样函数内就可以使用函数外的变量了,如果有多个变量,那么就使用逗号隔开,依然是分号结束。

<?php
$abc = 123;
$def = 456;
function text()
{
global $abc,$def;
echo $abc . $def;
}
text();
?>

2.全局作用域:

之前提到,函数具有全局作用域,也就是定义一个函数,那么该函数可以在程序中的任何地方使用。
在PHP中,虽然直接在文件开头定义的变量是全局变量,但是在函数中却需要加入关键字global才可以使用,
但如果有必要可以将变量定义在预定义变量中,因为PHP预定义变量是超全局变量,
超全局变量是可以在PHP中任何地方使用的,这个特性和函数一样。
<?php
$text = 'leo';
function printvar()
{
echo '在函数printvar内显示的$globals[\'text\']: ' . $GLOBALS['text'];
echo "<br>";
}
printvar();
echo '直接显示的$globals[\'text\']: ' . $GLOBALS['text'];
echo "<br>";
echo '直接显示的$text: ' . $text;
?>


                                            PHP函数

代码分析:第四行定义变量
t
e
x
t


linux创建文件
l
e
o


6

10





p
r
i
n
t
v
a
r








text,值为leo,第6-调用函数时实参是一个数组名10行定义函数printvaphp是什么r,函数作用是打印
textleo61phpmyadmin0printvar
GLOBALS[‘text’]这个变量,第12行系统运维面试题及答案调用函数printvar,此时得到第一个结果,第13行打印字符串“直接显示…”后面是一个字符串运算符" . ",是将“直接显示…”与后面“$GLOBALS[‘text’]"调用函数是什么意思的值。

加入反斜杠是因为打印的这个字符串含有变系统运维包括哪些内容量,如果使用双引号将不会显示“
Gjavaee
L
O
B
A
L
S
[

t
e
x
t

]







GLOBALS['text']”,而是显示“
GLOBALS[text]
GLOBLAS[‘text’]”的值。使用单引号是为了让这个变量以字符串输出,但是使用单引号就会和“$ GLOBALS[‘text’]”冲突,系统运维工作内容此时使用两个反斜杠来java转义这两个单引号,这样就准确地输出了字符串“$GLOBALS[‘text’]”。

只要定义的变量具有全局属性,那么该变量都可以用“$GLOBLAS[‘定义的变量名字’]”来访问java,不论在何时何地。java怎么读具有全局属性的变量通常指没有在任何条件或一些结构下定义的变量。

<?php
$text = 'leo';
function printcvar()
{
$wahaha = 'wahaha';
}
echo '显示的$GLOBALS[\'text\']: ' . $GLOBALS['text'];
echo '<br>';
echo '显示的$GLOBALS[\'wahaha\']: ' . $GLOBALS['wahaha'];
?>


                                            PHP函数

发现wahaha后面没有显示。
代码分析:定义$text变量没有在任何函数内或foreach等结构内,php教程所以具有全局属性,这些变量可以用超全局变量访问,反之,在函数printvar内定义的变量wahalinux必学的60个命令ha则具有局部属性,只是在函数printva默认值为系统日期r中有效,所以不能用超全局变量访问到。

生存期

<?php
function text()
{
$a = 0;
echo $a;
$a++;
}
text();
text();
?>


                                            PHP函数

结果输出00.函数内linux常用命令的变量
a



















a是一个局部作用域变量,每次调用时都会将
a
a的值设为0并输出0。将变量自加1的
a
+linux删除文件命令
+









退






a++没有作用,因为一旦退出本函数变量
a++默认值是什么意思退
a就不存在了。

那么,要将函数内的变量保留下来,除了return 之外,还php是前端还是后端可以使用静态变量。

<?php
function text()
{
static $a = 0;
echo $a;
$a++;
}
text();
text();
?>


                                            PHP函数
结果为01,这说明情java面试题况发生改变了,变量
a



javascript百炼成仙




linux必学的60个命令





t
e
x
t





















a的生存期不仅仅因为第一次函数phpstudytext的调用结束而结束,当第二次调用函数时,变调用函数时实参与形参
aphp什么意思tejava培训xtjavaeephp是什么
a的值还存在。

现在来看一下函数的生存期,先前提到函数是具有全局域的,无论在哪都能使用,但下面这个例子会出现一些例外。

<?php
function math()
{
echo 'math is amazing';
function code()
{
echo 'code is amazing';
}
}
code();
?>

结果会出现错误。这是因为没有运行math函数,code函数就没有定义。
修改:

<?php
function math()
{
echo 'math is amazing';
function code()
{
echo 'code is amazing';
}
}
math();
code();
?>

结果运行正常。

                                            PHP函数
修改:默认值是什么意思

<?php
function math()
{
echo 'math is amazing';
function code()
{
echo 'code is amazing';
}
}
math();
math();
code();
?>


                                            PHP函数

发现有区别,因为第一次调用math函数时,定义了code,第二次调用就出现了错误,这就是为什么不推荐在函数中定义函数,因java培训为定义了函数中的函数,那么上层函数就只能调用一次。