Heim  >  Artikel  >  php教程  >  [转]PHP 语言结构(Language constructs)和函数的区别

[转]PHP 语言结构(Language constructs)和函数的区别

WBOY
WBOYOriginal
2016-06-06 20:12:091187Durchsuche

文章出处:http://blog.sina.com.cn/s/blog_475429950100hk75.html 相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。 例子: if ( isset($username[5]) ) { // The username is at least six characters long. }

文章出处:http://blog.sina.com.cn/s/blog_475429950100hk75.html

相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。
例子:
if ( isset($username[5]) ) {
// The username is at least six characters long.
}
原因是isset是语言结构,而strlen是一个函数。那什么是语言结构呢?它和函数有什么不同吗?

1、? 什么是语言结构和函数
语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。
函数:??? 由代码块组成的,可以复用。
2、? 语言结构为什么比函数快
原因是在PHP中,函数都要先被PHP解析器分解成语言结构,所以有此可见,函数比语言结构多了一层解析器解析。这样就能比较好的理解为什么语言结构比函数快了。
3、? 语言结构和函数的不同
语言结构比对应功能的函数快
语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节
语言结构不能在配置项(php.ini)中禁用,函数则可以。
语言结构不能被用做回调函数
4、? 语言结构列表
echo()
print(),没错,这是一个语言结构
die()
isset()
unset()
include(),没有include_once()
require(),没有require_once()
array()
list()
empty()

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn