PHP易混淆函数的区别及用法汇总(函数和方法的区别)

1.echo和print的区别
PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

PHP代码:

复制代码代码如下:
$r = print "Hello World";

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

2.include与require的区别

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:

PHP代码:

复制代码代码如下:
if($a){
include("a.php");
}

而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里:

PHP代码:

复制代码代码如下:
if($a){
require("a.php");
}

在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!但requre却会给你来个致命错误。
当然,从字面意思上我们也可以理解七分:requre是很强硬的请求、要求的意思。

3.require_once()和include_once()语句

题外话了,因为长的像,简单require_once()和include_once()语句分别对应于require()和 include()语句。 require_once() 和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。

4.空字符串(")和NULL的区别

PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,你可以试一下echo gettype(");和echo gettype(NULL);你会发现他们打印出来的分别是string和NULL,当然还有0也容易混淆,你可以试试echo gettype(0);打印一下类型,会发现0的类型是integer(整型),可见字符串(")、NULL和0是"等值"但不等类型。

5.!isset和empty的区别

从字面意思上我们就可以明白:empty是判断一个变量是否为"空",而isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测$id 变量的时候,当$id=0 ,用empty和isset来检测变量$id是否已经配置,两都将返回不同的值:empty 认为没有配置,isset 则能够取得 $id 的值,看下边例子:

PHP代码:

复制代码代码如下:
$id=0;
empty($id)?print "我是空的":print "我是$id ."; //结果:我是空的
!isset($id)?print "我是空的":print "我是$id .";//结果:我是0

6.==(等)和===(恒等)的区别

回顾上面第四条空字符串("")和NULL的区别,再来看一个例子:

PHP代码:

复制代码代码如下:
" == NULL;
" === NULL;

运行之后你会发现第一个为true,而第二个则为false!可见==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。

7、php函数和方法的区别

我一直以为是一回事,直到看了thinkphp文档里面,有函数和方法的规范,才知道不是一回事。

方法是类里的"函数",只能通过对象调用,
特别的,类的静态方法能够通过类名直接调用.
平常说的函数,应该是全局作用域里的函数,引入后可以在任何地方直接调用.

做简单的区分就是:
函数是单独存在的,也就是面向过程部分定义的。
方法是依赖于类存在的,也就是面向对象中定义的。

函数,你可以当做一个算法的实现。
方法,则可以当做一个业务逻辑的实现。

类的方法可以设定访问权限,需要通过对象或者类来调用;函数是公共的,都可以使用。

原文地址:https://www.cnblogs.com/flzs/p/12557226.html

时间: 2024-10-18 03:44:19

PHP易混淆函数的区别及用法汇总(函数和方法的区别)的相关文章

PHP易混淆函数的区别及用法汇总

本文实例分析了PHP易混淆函数的区别及用法.分享给大家供大家参考.具体分析如下: 1.echo和print的区别PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1. PHP代码: 复制代码代码如下: $r = print "Hello World"; 这意味着print可用在一些复杂的表达式中,而echo则不

第九天 什么是函数,函数的return的用法,函数的传参

1 函数 1内置函数(Python解释器中自带的函数,可以直接调用) 2自定义函数(自己写的函数) 注意自己写的函数,必须先定义,在调用,定义了的函数可以在任意位置调用 什么是函数 函数就是具有某个具体功能的工具 为什么要用函数 提供开发效率 减少代码冗余 提高程序的扩展性 定义一个函数 def是定义函数的关键字 函数名:函数名的命名规则与变量名一致 1.不能以关键字(******) 2.函数也应该做到见名知意 函数在定义的时候只检测函数体语法 不执行函数体代码 def func(): prin

jQuery中$()函数的7种用法汇总

前言 jQuery对象是一个类数组的对象,含有连续的整形属性以及一系列的jQuery方法.它把所有的操作都包装在一个jQuery()函数中,形成了统一(也是惟一)的操作入口.其中我们用的非常频繁的一个函数是$()或者说是jQuery(),当我们调用他的时候会根据传入的参数的不同而达到不同的效果. 接下来会一一说一下这7中用法,欢迎大家指正其中不正确的地方. 简要的说是:接收一个css选择器表达式(selector)和可选的选择器上下文(context),返回一个包含了匹配的DOM元素的jQuer

MessageBox.Show()用法以及与ShowDialog方法的区别

1.MessageBox.Show("Hello,World"); 2.MessageBox.Show("have something Wrong", "ERROR"); 3.MessageBox.Show("是否删除", "确认认证", MessageBoxButtons.YesNo); 4.MessageBox.Show("是否删除", "确认认证", Messa

mysql之数据处理函数与数据汇总函数

一.数据处理函数   1.函数 与其他大多数计算机语言一样, SQL支持利用函数来处理数据.函数一般是在数据上执行的,它给数据的转换和处理提供了方便. 注意:函数没有 SQL的可移植性强.能运行在多个系统上的代码称为可移植的( portable).相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理.而函数的可移植性却不强.几乎每种主要的 DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大.为了代码的可移植,许多 SQL程序员不赞成使用特殊实现的功能.

a链接易混淆用法详解

链接可以说遍布互联网,比如你想提供一个可以跳转到百度首页的链接给网友,那么代码如下: <a href="http://www.baidu.com">百度一下,你就知道</a> 而如果这个链接指向的网址你想在浏览器中的新窗口中打开,那么代码如下: <a href="http://www.baidu.com" target="_blank">百度一下,你就知道</a> 那如果我页面中有一堆的a链接都想在

C++之易混淆知识点四---虚函数与虚继承

C++面向对象中,虚函数与虚继承是两个完全不同的概念. 一.虚函数 C++程序中只要类中含有虚拟函数,编译程序都会为此类生成一个对应的虚拟函数跳转表(vtbl),该虚拟函数跳转表是一个又若干个虚拟函数体入口地址组成的一个线性表.派生类的虚拟函数跳转表的前半部分由父类的vtbl得出,但是里面的内容不一定相同,后半部分则对应着自己新定义的虚拟函数. class Employee { protected: char *Name; int Age; public: void changeAge(int

sql中的表值函数与标量值函数区别与用法

通俗来讲: 听名字就知道区别了 表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂:标量值函数返回的只是一个值 一 .表值函数又分为内联函数与多语句函数 (1)内联函数就是没有函数主体表是单个 SELECT. 下面是一个不带输入参数的表值函数 create function tvpoints() returns table as return ( select * from tb_users ); 调用-这个结果返回的是一张表: select * fro

C++之易混淆知识点一

1.const.mutable与volatile的区别:const表明内存被初始化以后,程序将不能对它进行修改.volatile则表明,即使程序代码没有对内存单元进行修改,但是里面的值也可能会发生变化.例如:将一个指针指向某个硬件位置,其中包含了来自串行端口的时间和信息,在某些情况下,硬件而不是程序可能会修改其中的内容,或者两个程序可能相互影响,共享数据.该关键字的作用就是为了改善编译器的优化能力.假设编译器发现程序在几条语句中两次使用某个变量的值,则编译器可能不是让程序查找这个编码的值两次,而