PHP 常用关键字比较

mac2022-06-30  97

define 和 defined

define — 定义一个常量。定义成功,返回 true,否则返回 false defined — 检查某个名称的常量是否存在。若存在,返回 true,否则返回 false

实例:

defined('YII_DEBUG') or define('YII_DEBUG', true); //等同于: if (!defined('YII_DEBUG')) { define('YII_DEBUG', true); }

关于代码中 or 的用法:

逻辑运算符的运算顺序是从左向右or 运算符的左结合性or 运算中,如果运算时有值为 true,则整个表达式为 true,后面代码不执行

get 和 post

post 更安全(参数不会显示在url上),不会缓存数据,get 会将数据缓存起来post 发送的数据量更大,get 在url上有长度限制post 能发送更多的数据类型,get 只能发送 ASCII 字符post 比 get 慢post 是向服务器提交数据的一种请求,get 是向服务器发索取数据的请求

include、include_once 和 require、require_once

include():会将指定文件读入并执行里面的程序require():会将目标文件的内容读入,并且把自己本身代换成这些读入的内容include_once()、require_once():如果该文件已经被包含,则不会再次包含

include 和 require 的区别:

require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误,include 只产生警告 E_WARNING,换句话说,require 将导致脚本中止,而 include 脚本会继续运行。 <?php include 'a.php'; // 假设 a.php 并不存在,程序可以继续执行 echo '111'; // 运行结果: Warning: include(a.php): failed to open stream: No such file or directory in D:\www\index.php on line 3 Warning: include(): Failed opening 'a.php' for inclusion (include_path='.;C:\php\pear') in D:\www\index.php on line 3 111 <?php require 'a.php'; // 假设 a.php 并不存在,程序立即停止 echo '111'; // 运行结果: Warning: require(a.php): failed to open stream: No such file or directory in D:\www\index.php on line 3 Fatal error: require(): Failed opening required 'a.php' (include_path='.;C:\php\pear') in D:\www\index.php on line 3 incdlue 与 require 的功能相同,但在用法上却有些不同。include 是有条件包含函数,而 require 则是无条件包含函数。 // 如果变量$var为真,则包含文件 if ($var) { include('example.php'); } // 不管变量$var取何值,都将包含文件 if ($var) { require('example.php'); } <?php require 'a.php'; requrie 'a.php'; // a.php 被包含了两次 require 'a.php'; require_once 'a.php'; // 检查到已经包含过,不会进行第2次包含

isset 和 empty

isset — 检测变量是否已定义并且值不是 NULL 如果没有定义或变量值为 NULL,返回 false,否则返回 trueempty — 检查一个变量是否为空 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。empty 的重点是:是否为空,isset 的重点是:是否已设置并且非 NULL

针对 empty(),以下的东西被认为是空的:(即 empty(var) 返回 true)

“” (空字符串)0 (作为整数的0)0.0 (作为浮点数的0)“0” (作为字符串的0)NULLFALSEarray() (一个空数组)$var; (一个声明了,但是没有值的变量)

echo、print、print_r 和 var_dump

echo:可以输出一个或者多个字符串,多个值之间用逗号分隔。echo是语言结构,并不是真正的函数,没有返回值,不能作为表达式的一部分使用。print:只能打印出简单类型变量的值(如int,string)。如果字符串成功显示则返回 true,否则返回 falseprint_r:可以打印出复杂类型变量的值(如数组,对象),数组以括起来的键和值的列表显示,并以 Array 开头,但 print_r() 输出布尔值和 NULL 的结果没有意义var_dump:判断一个变量的类型与长度,并输出变量的数值,如果变量有值输出的是变量的值并返回数据类型。var_dump 的输出信息是最丰富的
最新回复(0)