PHP 11:函数

原文:PHP 11:函数

本文章介绍PHP的函数。
如何学习呢?可以从以下几个方面考虑

  1. 函数是如何定义的?区分大小写吗?
  2. 函数的参数是如何定义的?
  3. 函数是否支持重载?
  4. 函数的返回值是如何定义的。
  5. 函数有变量函数吗?

如果把上面的问题搞清楚了,相信函数你也就掌握了。还是一个个看吧。

  1.  函数是如何定义的?区分大小写吗?

首先函数对大小写不敏感。但是还是建议你采用和函数声明时的一样。
        函数是如何定义的呢?语法可以为:

<?php
function func($arg_1, $arg_2, , $arg_n)
{
   echo "Example function.\n";
   return $retval;
}
?>

其实和其他语言差不多。不过函数声明里不需要显式的说明返回类型。和JavaScript差不多。
  那么是不是和C语言一样,函数先定义后使用呢?这个问题非常好。在PHP3中,确实需要这样,但是后期版本则没有限制了。
  由于PHP存在函数种的函数或条件函数,所以这2种情况下需要先定义后使用,要是没有定义函数你却使用了,系统会出问题的。函数中的函数倒是和Python有些类似。
 条件函数的例子可以是:

1 <?php
 2  $isRequired=true;
 3  if($isRequired)
 4   {
 5       function func($op1,$op2)
 6        {
 7             return $op1+$op2;
 8       }
 9   }
10   if($isRequired)
11      echo "func(1,3)=".func(1,3);
12    
13    function helloWorld()
14    {
15         return "Hello,world";
16    }
17     echo ‘<br>Call function helloWorld():‘.helloWorld();
18 ?>

输出结果为:

func(1,3)=4
Call function helloWorld():Hello,world

函数中的函数可以是:

1 <?php
 2 function func()
 3 {
 4   function subfunc()
 5   {
 6    echo "I don‘t exist until func() is called.\n";
 7    echo "I have alrady made ";
 8   }
 9 }
10 
11 /* We can‘t call subfunc() yet
12    since it doesn‘t exist. */
13 
14 func();
15 
16 /* Now we can call subfunc(),
17    func()‘s processesing has
18    made it accessable. */
19 
20 subfunc();
21 
22 ?>

输出结果是:

I don‘t exist until func() is called. I have alrady made


2. 函数的参数是如何定义的?

    和通常使用的函数参数一样,参数列表用逗号分隔。那么参数是按值传递还是按引用传递呢?答案是值传递。如何按引用传递呢?其实和C++里一样,在参数前使用&符号。
   那么如何设置缺省的参数值呢?这个和C++一样,在参数列表里直接写上就行了。例如:

<?php
function MakeComputerBrand($brand = "IBM")
{
   return "Making ".$brand." computer now.<br>";
}
echo MakeComputerBrand();
echo MakeComputerBrand("DELL");
echo MakeComputerBrand("HP");
echo MakeComputerBrand("Lenevo");
?>

输出的结果是:

Making IBM computer now.
Making DELL computer now.
Making HP computer now.
Making Lenevo computer now.


3. 函数是否支持重载?

   不支持。

4 .函数的返回值是如何定义的

   如果单独返回一个值或不返回值,和普通语言一样,return就可以。但是若返回多个值,一种方法是返回一个数组。例如:

<?php
function small_numbers()
{
   return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>


5. 函数有变量函数吗?

有,和可变变量一样。

时间: 2024-10-17 22:16:46

PHP 11:函数的相关文章

c++11 函数内部返回对象使用move语义的最佳实践

一句话,直接返回即可,不用任何变化. 当启动了c++11选项后,通过函数返回代码没有发生任何变化,但是已经使用了move语义,而不需要之前的NRVO编译器优化技术. 注意,右值引用rvalue reference是表达式计算完成后就不再存在的临时变量,左值是表达式计算完成后的变量.如果能够用&求址的,就是左值. 下面是stackoverflow上的一个讨论贴,比较有价值: 246down voteaccepted First example std::vector<int> retur

11 函数和函数式编程 - 《Python 核心编程》

?? 什么是函数 ?? 调用函数 ?? 创建函数 ?? 传入函数 ?? 形参 ?? 变长参数 ?? 函数式编程 ?? 变量的作用域 ?? 递归 ?? 生成器 11.1 什么是函数? 函数是对程序逻辑进行结构化或过程化的一种编程方法. 函数可以以不同的形式出现. declaration/definition          def foo(): print 'bar' function object/reference    foo function call/invocation      

python 基础篇 11 函数进阶----装饰器

11. 前??能-装饰器初识本节主要内容:1. 函数名的运?, 第?类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ?. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 叫闭包 可以使用_clesure_检测函数是否是闭包  返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不?定了, 因为在外部,

python 11 函数名 迭代器

今日内容大纲 global nonlocal 函数名的运用 新特性:格式化输出 迭代器: 可迭代对象 获取对象的方法 判断一个对象是否是可迭代对象 小结 迭代器 迭代器的定义 判断一个对象是否是迭代器 迭代器的取值 可迭代对象如何转化成迭代器 while循环模拟for循环机制 小结 可迭代对象与迭代器的对比 昨日内容回顾以及作业讲解 函数的参数: 实参角度:位置参数,关键字参数,混合参数. 形参角度:位置参数,默认参数,仅限关键字参数,万能参数. 形参角度参数顺序:位置参数,*args, 默认参

C++11 函数模板的默认模板参数

类模板:通用的类描述(使用泛型来定义类),进行实例化时,其中的泛型再用具体的类型替换. 函数模板:通用的函数描述(使用泛型来定义函数),进行实例化时,其中的泛型再用具体的类型替换. [1]C++98标准中两者的区别 函数模板和类模板在C++98标准中一起被引入,两者区别主要在于: 在类模板声明时,标准允许其有默认模板参数.而函数模板却不支持. 默认模板参数的作用如同函数的默认形参.不过在C++11中,这一限制已经被解除了,如下例所示: 1 void DefParm(int m = 3) {} /

C++11函数返回右值引用

我们定义了一个可以传入右值引用的构造函数的类B,在使用std::move的时候,我们非常容易犯一个错误.看下面的代码: class B { public: B() :s(10), ptr(new int[s]) { std::cout << "default constructor" << std::endl; for (int i = 0; i < s; i++) { ptr[i] = i; } } B(const B& b) :s(b.s) {

Python学习笔记11—函数

建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__=="__main__": add_function(2,3) 在定义函数的时候,参数可以像前面那样,等待被赋值,也可以定义的时候就赋给一个默认值.例如 >>> def times(x,y=2): #y的默认值为 2 ... print "x=",x ... prin

python基础11 ---函数模块1

函数模块 一.函数模块的作用(为什么要有函数模块) 1.函数模块可以减少代码量 2.函数模块方便阅读 3.函数模块维护性强二.函数模块的本质以及调用方法 1.函数模块的本质就是一个.py结尾的文件,该文件内写入大量函数 2.必须用import来引用函数模块,在调用函数模块时必须以"模块名.函数名"来调用函数模块中的函数. 3.有的时候我们只需要用到模块中的某个函数,也可以用"from 模块名 improt 函数1,函数2"的方式来引用该模块,但只是一次引用,不建议使

10.11 函数

--时间日期函数 select SYSDATETIME ()--获取系统当前时间,可以作为数值来比较, select GETDATE()--获取数据库当前服务时间,比系统当前时间快 select YEAR('2013-2-23') select YEAR(GETDATE()) select month('2013-2-23') select day('2013-2-23') select DATENAME(YEAR,'2015-5-5')--返回字符串形式 select DATENAME(DAY

第一阶段 11函数

函数 (一)函数的定义 函数就是定义在类中具有特定功能的一段独立的小程序 函数也称为方法 函数的格式 修饰符 返回值类型 函数名(参数类型 形式参数1,形式参数2....){ 执行语句; return 返回值; } 返回值类型:函数运行后的结果的数据类型 参数类型:是形式参数的数据类型 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数 实际参数:传递给形式参数的具体数值 return,用于结束函数 返回值:该函数运算后的结果,该结果会返回给调用者 (二)函数的特点 定义函数可以将功能