2.10.PHP7.1 狐教程-【PHP 函数】
目录
博客目录
http://www.foxwho.com/article/24
CSDN目录
http://blog.csdn.net/fenglailea/article/details/60330101
风.fox
PHP 函数
函数由 function 关键词和自定义名称表示
function test($msg,$other){return "参数1:{$msg},参数2:{$other}";
}
test
就是一个函数
$msg
就是 这个函数的第一个参数
$other
就是 这个函数的第二个参数
$msg
和$other
可是任何数据类型,可以是数值,字符,逻辑,对象,数组,null值等等
函数调用
echo test("这是函数","其他");//返回正确信息echo test();//PHP程序报错,参数必须有值
在直接调用test()
函数时,函数的参数没有传入任何值,那么就会报错,如果你不想直接调用无参数的函数不报错,那么久要给参数增加默认值
以下函数的参数就增加了字符串空值
function test($msg='',$other=''){return "参数1:{$msg},参数2:{$other}";
}
更严格的PHP函数参数
函数变量类型声明 两种模式 : 强制 ( 默认 ) 和 严格模式
默认模式 如刚开始的PHP函数
类型:array,object(对象),string、int、float和 bool
class Product{public function name(){return "书名称";}
}function test(string $msg='',array $option=[],int $int=0, float $float=1.2,bool $bool=false,Product $product=null){return "参数1:{$msg},参数2:{$other}";
}
//调用test("字符串",['min'=>10],100,98.90,true,new Product());
string $msg 传输的参数必须是字符串
array $option 传输的参数必须是数组
int $int 传输的参数必须是整数
float $float 传输的参数必须是浮点数
bool $bool 传输的参数必须是 逻辑数
Product $product 传输的参数必须 Product对象
php 返回值类型声明
函数和匿名函数都可以指定返回值的类型
function show(): array
{ return [1,2,3,4];
}function arraysSum(array ...$arrays): array
{return array_map(function(array $array): int {return array_sum($array);
}, $arrays);
}
PHP 数组返回值 array
function show(): array
{ return [1,2,3,4];
}
PHP 字符串返回值 string
function show(): string
{ return "ABCDEF";
}
PHP 整数返回值 int
function show(): int
{ return 9999;
}
PHP 浮点数返回值 float
function show(): float
{ return 11.1;
}
PHP 逻辑返回值 bool
function show(): bool
{ return true;
}
PHP 对象返回值 object
class Product{public function name(){return "书名称";}
}function show(): Product
{ return new Product();
}
php void返回值 Void 函数
在PHP 7 中引入的其他返回值类型的基础上,一个新的返回值类型void被引入。 返回值声明为 void 类型的方法要么干脆省去 return 语句,要么使用一个空的 return 语句。 对于 void 函数来说,null 不是一个合法的返回值。
function swap(&$left, &$right) : void
{if ($left === $right) {return;}$tmp = $left;$left = $right;$right = $tmp;
}
$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);
以上例程会输出:
null
int(2)
int(1)
试图去获取一个 void 方法的返回值会得到 null ,并且不会产生任何警告。这么做的原因是不想影响更高层次的方法。
PHP 函数 的参数跳跃
如果你有一个函数接受多个可选的参数,目前没有办法只改变最后一个参数,而让其他所有参数为默认值。
function lists($where, $order_by,$field='',$page=1, $page_size=20) {...
}
那么有没有办法设置$page_size=30,而其他两个为默认值。为了解决这个跳跃参数的问题而提出:
lists("deleted=0", "name", default, default, 30);
PHP 可变函数参数
代替 func_get_args()
function add(...$args)
{ $result = 0; foreach($args as $arg) $result += $arg; return $result;
}
PHP 函数 可为空(Nullable)类型
类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null 。可以通过在类型前面加上一个问号来使之成为可为空的。
function test(?string $name)
{var_dump($name);
}
以上例程会输出:
string(5) "tpunt"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...
PHP 函数 参数解包功能
在调用函数的时候,通过 … 操作符可以把数组或者可遍历对象解包到参数列表,这和Ruby等语言中的扩张(splat)操作符类似
function add($a, $b, $c) { return $a + $b + $c;
}
$arr = [2, 3];
add(1, ...$arr);
PHP 函数 Callable typehint
对PHP函数,类的方法调用
function foo(callable $callback) {
}
案例
foo("false"); //错误,因为false不是callable类型 foo("printf"); //正确 foo(function(){}); //正确
class A { static function show() { }
} foo(array("A", "show")); //正确
参考
http://blog.csdn.net/fenglailea/article/details/52717646
2.10.PHP7.1 狐教程-【PHP 函数】相关推荐
- iOS 10应用开发基础教程
iOS 10应用开发基础教程 介绍: 本教程是国内第一本iOS 10开发应用教程.本教程基于Xcode 8.0,使用Swift 3.0语言讲解如何开发iOS 10的应用App. 学习建议:本教程针对i ...
- Swift2.0语言教程之函数的返回值与函数类型
Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...
- python菜鸟教程-Python3 函数
Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...
- wordpress教程之函数讲解
wordpress函数收集 is_home() : 是否为主页 is_single() : 是否为内容页(Post), 是否是单篇文章 is_page() : 是否为内容页(Page), ...
- TensorFlow2.0教程-keras 函数api
TensorFlow2.0教程-keras 函数api Tensorflow 2.0 教程持续更新: https://blog.csdn.net/qq_31456593/article/details ...
- python - windows 之 win32api资料教程与函数大全
win32api 官网教程 : http://timgolden.me.uk/pywin32-docs/contents.html win32api 其他教程: http://www.esk365.c ...
- Axure RP9教程 常用函数
Axure教程 常用函数 一.说明 二.基本语法 三. 数字函数 1.toExponential(decimalPoints) 2.toFixed(decimalPoints) 3.toPrecisi ...
- Win7/10下安装Bookdown教程
Win7/10下安装Bookdown教程 一.前言 二.安装前准备 (一)R语言环境 (二)RStudio (三)TinyTex (四)Pandoc 三.软件安装 (一)R环境安装 (二)RStudi ...
- java调用javascript函数_[Java教程]JavaScript函数的4种调用方法详解
[Java教程]JavaScript函数的4种调用方法详解 0 2016-08-09 00:00:12 在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C# ...
- windows和linux添加引导文件,Linux与Windows 10用grub引导教程-Go语言中文社区
前言 去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程.由于去年对于写教程还 ...
最新文章
- 关于JS点击button之灵活替换改变内容方法
- 皮一皮:这这这..太真实了...
- WSS(MOSS)如何修改Rich文本编辑器的宽度
- ORACLE查询删除重复记录
- 分支结构,循环结构,for循环,九九乘法表
- 使用Adsutil.vbs来获取IIS用户的密码
- LeetCode 20. Valid Parentheses(c++)
- dfs序 + RMQ = LCA
- dj鲜生-32-用户中心-收货地址
- linux服务器常用维护命令,Linux服务器维护常用命令
- php自动下载 linux,Linux下软件、PHP和Perl的模块等都实现了自动安装
- matlab file(i).name,求大佬帮忙备注一下,有点看不懂,详细一点
- 软件测试就业必备知识点自学软件测试-Dotest-2019
- 《汇编语言》——王爽第三版笔记(1-3章)
- Druid源码分析--整体结构
- formula one不兼容win10
- 在资深的幻游科技棋牌开发公司,领悟到的棋牌开发分享
- nm 和 c++filt - [GNU/Linux]
- 98、网管型和非网管型交换机有什么区别
- 大学必考计算机软件cad,大学CAD考试试题单选多选作图操作题.doc
热门文章
- Android 代码名字-API级别-版本号-NDK版本对应关系
- 用例规约要细致到万无一失吗?
- Treeview的文件目录配置
- 排序算法--冒泡排序
- java中怎么表示数组中的某个值_java中如何高效判断数组中是否包含某个特定的值...
- jmeter html插件,Jmeter最常见的几个插件(一)
- springboot指定属性返回_SpringBoot中属性赋值操作的实现
- 自定义数据库连接池和Druid介绍
- sonar mysql svn_jenkins+sonarqube+svn/git踩过的坑
- ValueError: threshold must be numeric and non-NAN, try sys.maxsize for untruncated representation