您的当前位置:首页>全部文章>文章详情

【PHP】php魔术常量、超全局变量和魔术方法汇总

CrazyPanda发表于:2024-07-17 09:30:30浏览:259次TAG:

一、魔术常量(8个)

PHP中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量。

  1. LINE:文件中 本常量所在行的 行号(即处于第几行)。

  2. FELE:本文件的完整路径和文件名。如果被用在 被包含文件中,则返回被包含文件的文件名。本常量总是包含一个绝对路径(如果是符号链接,则是解析后的绝对路径)

  3. DIR:本文件所在目录。如果被用在 被包含文件中,则返回被包含文件的所在目录。它等价于 dirname(FILE)。除非是根目录,否则目录名中不包含末尾的斜杠。

  4. FUNCTION:函数名称。自 PHP 5 起本常量返回 函数 被定义时的名称(区分大小写)。

  5. CLASS:类名称。自 PHP 5 起本常量 返回 类 被定义时的名称(区分大小写)。类名包括其被声明的左右区域(如:Foo\Bar)。

  6. TRAIT:trait 的名称。自 PHP 5.4 起本常量 返回 trait 被定义时的名称(区分大小写)。

  7. METHOD:类的方法名。返回该方法被定义时的名称(区分大小写)。

  8. NAMESPACE:当前命名空间的名称(区分大小写)。本常量是在编译时定义的。

二、超全局变量(9个)

PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。不需要特别说明,就可以在函数及类中使用.

  1. $GLOBALS :储存全局作用域中的变量

  2. $_SERVER :获取服务器相关信息

$_SERVER 是一个包含例如头信息(header)、路径(path)、以及脚本位置(script
locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每一个服务器 都提供全部项目; 服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

  1. $_REQUEST:获取POST和GET请求的参数

  2. $_POST : 获取表单的POST请求参数

  3. $_GET: 获取表单的GET请求参数

  4. $_FILES :获取上传文件的的变量

  5. $_ENV : 获取服务器端环境变量的数组

  6. $_COOKIE:获取浏览器的cookie

设置cookie:setcookie(name, value, expire, path, domain);
获取cookie:$_COOKIE[“user”]; 删除cookie:setcookie(“user”, “”,
time()-3600);//设置过期时间

9、$_SESSION : 获取session

使用session前一定要session_start()启动session
储存session:$_SESSION[‘name’]=”leixuesong”;//数组操作
销毁session:unset($_SESSION[‘views’]); //销毁一个  
session_destroy()和unset($_SESSION);//销毁所有的session1234

三、魔术方法

php在面向对象编程时有一些特殊的方法,会在特定的时机自动调用,我们将这类方法称为魔术方法

1.__construct,__destruct
__constuct构建对象的时被调用;
__destruct明确销毁对象或脚本结束时被调用;
2.__get,__set
__set当给不可访问或不存在属性赋值时被调用
__get读取不可访问或不存在属性时被调用
3.__isset,__unset
__isset对不可访问或不存在的属性调用isset()或empty()时被调用
__unset对不可访问或不存在的属性进行unset时被调用
4.__call,__callStatic
__call调用不可访问或不存在的方法时被调用
__callStatic调用不可访问或不存在的静态方法时被调用
5.__sleep,__wakeup
__sleep当使用serialize时被调用,当你不需要保存大对象的所有数据时很有用
__wakeup当使用unserialize时被调用,可用于做些对象的初始化操作
6.__clone
进行对象clone时被调用,用来调整对象的克隆行为
7.__toString
当一个类被转换成字符串时被调用
8.__invoke
当以函数方式调用对象时被调用
9.__set_state
当调用var_export()导出类时,此静态方法被调用。用__set_state的返回值做为var_export的返回值。
10.__debuginfo
当调用var_dump()打印对象时被调用(当你不想打印所有属性)

猜你喜欢

【PHP】使用ThinkPHP6实现分布式系统
随着互联网的发展,越来越多的企业和组织开始使用分布式系统来支持其业务需求。分布式系统是指由多个互相独立的计算机系统集成在一起,共同完成一些任务或处理一些数据,整个系统看起来就像是一个单一的计算机系统。在Web应用程序中,ThinkPHP是一个非常流行的PHP框架。ThinkPHP6是其最新的版本,提供了更多的功能和性能优化。如果你想要使用ThinkPHP6来构建分布式系统,下面是一些实现的步骤:第一步:搭建应用程序框架首先,你需要在你的服务器上安装PHP。然后,你需要安装Composer,这是一
发表于:2024-05-29 浏览:339 TAG:
【PHP】php删除数组中的重复值
随着互联网技术的快速发展,各种编程语言也在不断更新和发展。其中,PHP作为一门开发Web应用程序的强大语言,受到了广泛的关注和使用。在PHP编程中,数组是非常常用的数据类型之一,而处理数组中重复值的问题也是PHP开发人员经常遇到的问题之一。本文将介绍PHP中删除数组中重复值的方法。方法一:array_uniquePHP提供了一个内置函数array_unique(),可以用来删除数组中的重复值。array_unique()函数将返回一个新数组,该数组包含输入数组中所有的唯一值。使用arr
发表于:2023-12-19 浏览:323 TAG:
【PHP】RESTfulAPI详解
1. 什么是RESTfulAPIRESTful API 是一种互联网软件架构的设计规范,设计指南,设计风格,设计原则(类似于web标准,并不是标准【规范,原则】)2. 产生背景开始开发时,前后端高度融合(耦合) 近些年:前后端分离,前端各种客户端产生。基于这种现状,需要一个统一的机制。为前后端通信服务(API机制) 因此,前后端分离开来前后端基于API 开发,即:面向接口开发 前后端基于接口传递数据。 RESTfulAPI作为制定接口标准的规范而产生了。3. RESTful APIAPI简介:
发表于:2024-05-24 浏览:278 TAG:
【PHP】PHP静态化
随着互联网的快速发展,网站访问量越来越大,同时网站的性能也成为了设计者们需要考虑的重要问题之一。对于使用php语言的开发人员来说,静态化是提高网站性能的一种有效方法。在本文中,我们将探讨php中静态化的方法。一、什么是静态化静态化是指将动态生成的网页文件(如PHP文件)转换为静态的HTML文件存储在服务器上。当用户请求时,直接访问静态HTML文件,避免了每次请求都要执行PHP代码的情况,从而提高了网站的性能响应速度。二、静态化的优劣静态化虽然能够提高网站响应速度,但它也存在一些缺陷:优点:1.减
发表于:2024-06-18 浏览:274 TAG:
【PHP】thinkphp使用队列think-queue
在ThinkPHP框架中,队列(Queue)是一种非常有用的功能,它允许你将一些耗时的任务(比如发送邮件、数据处理等)放入队列中,由后台的队列工作者(worker)异步处理,从而不阻塞主应用程序的运行。
发表于:2025-01-24 浏览:120 TAG: #php #队列 #thinkphp
【PHP】PHP8.1新特性大讲解之Fibers with a grain of salt
Fibers with a grain of salt所以我打算写一篇关于在PHP 8.1 中使用Fibers纤维的深入博客文章。我们将从一个基本示例开始,从头开始解释它们。这个想法是发送异步 HTTP 请求并使用纤程并行处理它们。但是和他们一起玩,我了解到RFC并不是在开玩笑,当它说“不应直接在应用程序级代码中使用 Fiber API。Fibers 提供了一个基本的、低级的流控制 API 来创建更高然后在应用程序代码中使用的级抽象”。因此,与其走这条路并使事情变得过于复杂,我们将讨论什么是纤程
发表于:2024-01-04 浏览:301 TAG:
【PHP】PHP框架在大型电子商务和SaaS平台中的应用场景和挑战
hp框架在大型电子商务和saas平台中广泛用于构建购物车、用户管理和数据处理等功能。应用场景包括但不限于电子商务平台的购物车和支付网关构建,以及saas平台的用户管理和数据存储功能开发。然而,这些平台也面临着性能、可扩展性、安全和维护方面的挑战。PHP框架在大型电子商务和SaaS平台中的应用场景和挑战简介PHP是一种广泛使用的后端编程语言,凭借其灵活性、广泛的库支持和易于使用性,在大型电子商务和SaaS平台中备受青睐。本文将探讨这些平台中PHP框架的应用场景和面临的挑战。应用场景电子商务:构建
发表于:2024-05-30 浏览:274 TAG:
【PHP】php有哪些高效文本数据库
php高效文本数据库有SQLite、Redis和MongoDB等。详细介绍:1、SQLite是一种嵌入式的关系型数据库,它以文件形式存储数据,不需要独立的服务器进程,SQLite在PHP中有广泛的应用,它提供了高效的数据存储和检索能力,支持常见的SQL语法和事务操作,SQLite具有小巧、快速、可靠和易于集成的特点,适用于小型项目或需要单用户访问的应用程序;2、Redis等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP中,有几种高效的文
发表于:2023-12-28 浏览:321 TAG:
【PHP】php后端搜索插件有哪些
php后端搜索插件有Elasticsearch、Solr、Sphinx、Algolia、MySQL全文搜索等等。详细介绍:1、Elasticsearch,提供了强大的全文搜索功能,可以快速地处理大量的数据,并支持复杂的查询和过滤;2、Solr,提供了全文搜索、分布式搜索和面向文档的搜索功能,Solr具有高性能和可扩展性,并支持多种查询语法和过滤器;3、Sphinx等等。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。PHP后端搜索插件是一种用于在网站或
发表于:2023-12-04 浏览:782 TAG:
【PHP】PHP面试题
一、 PHP部分PHP如何实现静态化PHP的静态化分为:纯静态和伪静态。其中纯静态又分为:局部纯静态和全部纯静态。PHP伪静态:利用Apache mod_rewrite实现URL重写的方法;PHP纯静态,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。PHP经典四大排序算法PHP的四种基本排序算法为:冒泡排序、插入排序、选择排序和快速排序。冒泡排序:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数来。插入排序:假设组前面的元
发表于:2024-05-22 浏览:299 TAG: