Ⅰ php函数的简介
用户自定义函数一个函数可由以下的语法来定义: <?phpfunction foo($arg_1, $arg_2, ..., $arg_n){ echo "Example function./n"; return $retval;}?>任何有效的 php 代码都有可能出现在函数内部,甚至包括其它函数和类定义。
在 php 3 中,函数必须在被调用之前定义。而 php 4 则不再有这样的条件。除非函数如以下两个范例中有条件的定义。
如果一个函数以以下两个范例的方式有条件的定义,其定义必须在调用之前完成。 <?phpfunction foo(){ function bar() { echo "I don't exist until foo() is called./n"; }}/* We can't call bar() yet since it doesn't exist. */foo();/* Now we can call bar(), foo()'s processesing has made it accessable. */bar();?>php 中的所有函数和类都具有全局域,可以在内部定义外部调用,反之亦然。
php 不支持函数重载,也不可能取消定义或者重定义已声明的函数。
注:函数名是非大小写敏感的,不过在调用函数的时候,通常使用其在定义时相同的形式。
php 3 虽然支持默认参数(更多信息请参照默认参数的值),但是却不支持可变的参数个数。php 4 支持:见可变长度的参数列表和涉及到的相关函数func_num_args(),func_get_arg(),以及func_get_args()以获取更多的信息。
在 php 中可以调用递归函数。但是要避免递归函数/方法调用超过 100-200 层,因为可能会破坏堆栈从而使当前脚本终止。 sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。
与其让服务器因负载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。不过很遗憾,该函数在windows下无效。 在发送页面前先看看用户的浏览器都能做些什么是不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给函数做参考文件。
要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的。例如,如果用户关闭了浏览器对JavaScript的支持,函数无法得知这一点。但是在判断浏览器类型和OS平台方面,该函数还是很准确的。 glob()会让你觉得用opendir(), readdir()和closedir()来寻找文件非常蠢。
Ⅱ PHP改变传入参数的值
function add (&$a){
$a++;
}
$a=1;
add($a);
echo $a; // 这里就等于2 至于怎么组合使用你自己看着办
Ⅲ 2. 下列哪项不支持 php 函数的功能。()a 可变的参数个数b 通过引用传
php函数的参数个数必须是确定的,当然你引用函数的时候,如果有的参数是有默认值的,可以不用将他们写上
function test($a,$b=array()){
}
你引用的时候可以
test('1',array(1,2,3));
也可以
test('1');
但其实test的函数参数个数是确定的
Ⅳ JS与PHP向函数传递可变参数的区别实例代码
#
JS
调用函数传递可变参数的方法
复制代码
代码如下:
<script>
function
test()
{
for(var
i
=
0;i
<
arguments.length;
i++)
{
alert(arguments[i]);
}
}
//调用函数
test(1,
2,
3,
'abc');
</script>
#
PHP
调用函数传递可变参数的方法
复制代码
代码如下:
<?php
//方法一
//接收一系列参数,并逐一输出
function
show_params
()
{
//获取传递参数的个数
$count
=
func_num_args();
//遍历参数并逐一输出
for
($i
=
0;
$i
<
$count;
$i++)
{
//获取参数
$param
=
func_get_arg($i);
echo
$param
.
PHP_EOL;
}
}
//调用函数
show_params(1,
2,
'apple',
3.14);
//方法2
function
show_params
()
{
//定义存储传递参数的数组
$params
=
array();
//获取全部参数
$params
=
func_get_args();
$count
=
count($params);
//遍历并逐一输出参数
for
($i
=
0;
$i
<
$count;
$i++)
{
echo
$params[$i];
echo
PHP_EOL;
}
}
//注:
方法2比方法1执行的慢一些
Ⅳ 什么是PHP中可变变量以及如何应用
有时候可变的变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用。通常变量通过下面这样的语句来命名<?php 可变变量名指的是使用一个变量的值作为这个变量的名称。在上面的例子中,通过使用两个$符号,你可以把hello设置成一个变量的名称,就像下面那样。<?php 通过上面的两个语句,有两个变量被定义:变量$a,装的内容是hello 以及变量$hello,装的内容是 world。 于是,下面的语言:<?php 跟下面的语句的输出完全一致:<?php 它们都输出:hello world。 为了使用数组的可变变量名,你需要解决一个歧义问题。就是,如果你写$$a[1],解析器需要明白究竟你的意思是要把$a[1]当成一个变量,还是要把$$a当成变量、[1]指的是这个变量的索引。解决这个歧义问题的语法是:第一种情况使用${$a[1]},第二种情况使用${$a}[1]。 类属性也可以通过可变属性名来访问。可变属性名从产生调用所在的变量的访问范围内获取。例如,如果你的表达式是这样的:$foo-$bar,那么运行时将会在本地变量范围内寻找变量$bar,它的值将会做为$foo对象的一个属性名。如果$bar是个数组也可以使用。 例1 可变变量名<?php class foo { var $bar = 'I am bar.';} $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); 上面的例子将会输出下面的结果:I am bar. 请注意,可变变量名不能用于PHP函数和类里的超级全局数组变量上。
Ⅵ php函数设定参数类型
php 函数的参数类型可以指定为类名或数组类型array,比如
这样是对的public function Right( My_Class $a, array $b )
这样是错的public function Wrong( string $a, boolean $b )
如果需要其他类型,需要在函数内部进行类型检查
参考
http://www.php.net/manual/zh/functions.arguments.php
这一段
public function Right( My_Class $a, array $b )
tells first argument have to by object of My_Class, second an array. My_Class means that you can pass also object of class that either extends My_Class or implements (if My_Class is abstract class) My_Class. If you need exactly My_Class you need to either make it final, or add some code to check what $a really.
Also note, that (unfortunately) "array" is the only built-in type you can use in signature. Any other types i.e.:
public function Wrong( string $a, boolean $b )
will cause an error, because PHP will complain that $a is not an *object* of class string (and $b is not an object of class boolean).
So if you need to know if $a is a string or $b bool, you need to write some code in your function body and i.e. throw exception if you detect type mismatch (or you can try to cast if it's doable).
Ⅶ 怎样用php输出a标签,且带有可变参数
echo '<li><a href="ruirong.php ?id=$abc">'.$row['zbt'].'</span></a></li>';
只要在双引号里就能解析变量,像你原先那个,就会变成$id=$abc,变成了字符串
可能不太好理解,直接取前面这一段 '<li><a href="ruirong.php ?id="$abc"">'
你先去掉单引号 <li><a href="ruirong.php ?id="$abc"">,如果你的编辑器有颜色区分的话,你可以看到$abc,是变量的颜色,那是因为"ruirong.php ?id="和"",被当做一对双引号,然后你外面又有一层单引号,$abc就变成字符串了。
Ⅷ php 可变参数如何向内传递
这个涉及到了php7+的新特性,和一种获取参数的方式,两种方法,个人推荐php7的新特性方式。
PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。如下:
<?php
functionsumOfInts(int...$ints)
{
returnarray_sum($ints);
}
var_mp(sumOfInts(2,3,4));
以上程序会输出:
int(9)
还有一种方式,使用func_get_args(),如下:
<?php
functionfoo()
{
$arg_list=func_get_args();
echo$arg_list[0]." ";//第一个参数
echo$arg_list[1]." ";//第二个参数
echo$arg_list[2]." ";//第三个参数
}
foo(1,2,3);
?>
以上例程会输出:
1
2
3
Ⅸ PHP的几种函数参数类型及一些特殊函数
给你整理如下:
默认参数:在函数声明时给参数赋值,而且此默认参数只能在最后,调用时可不传递任何参数(若只有默认参数的情况下)
可变参数:一个函数可能需要可个可变数目的参数。在php中,提供了三个函数用于检索函数中所传递的参数。func_get_args()返回一个提供提供给函数的所有参数的数组;func_num_args()返回提供给函数的参数数目;func_get_arg()返回一个来自参数的特定参数。具体如下:
$array = func_get_args();
$count = func_num_args();
$value = func_get_arg();
遗漏参数:当调用函数时,可以传递任意个参数给函数。当函数必要的参数没有i被传递时,此参数值是空,并且PHP会为每个遗漏的参数发出警告
可变函数:使用可变变量,可以基于变量的值调用函数
匿名函数:又叫闭包函数,允许临时建立一个没有指定名称的函数,最经常用作回调函数参数的值。需要注意的是,在匿名函数内的变量的用法不同于全局变量,在匿名函数内的变量是一个闭包变量,另外,被调用闭包的作用域不必是相同的。