iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php下划线是什么意思
  • 389
分享到

php下划线是什么意思

php下划线 2021-11-21 06:11:10 389人浏览 才女
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php下划线是什么意思?php中用下划线开头的变量含义命名的规则 加一个为私有的 加两个一般都是系统默认的,系统预定义的,即所谓:=================

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php下划线是什么意思?

php中用下划线开头的变量含义

命名的规则

加一个为私有的

加两个一般都是系统默认的,系统预定义的,即所谓:

=====================

“魔术方法”与“魔术常量”

=====================

★PHP起止为双下划线的常量即为“魔术常量”:

__LINE__文件中的当前行号。

__FILE__文件的完整路径和文件名。

__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠

注:以上内容来自“PHP中文手册->语言参考->常量->魔术常量”。

从php5以后的版本,php的类就可以使用魔术方法了。

php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。

PHP中的魔术方法有 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone, __autoload

__get、__set

这两个方法是为在类和他们的父类中没有声明的属性而设计的

__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名

__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值

这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性)。

__isset、__unset

__isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法

__unset( $property ) 当在一个未定义的属性上调用unset()函数时调用此方法

与__get方法和__set方法相同,这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性)

__call

__call( $method, $arg_array ) 当调用一个未定义的方法是调用此方法

这里的未定义的方法包括没有权限访问的方法;如果方法不存在就去父类中找这个方法,如果父类中也不存在就去调用本类的__call()方?法,如果本类中不存在__call()方法就去找父类中的__call()方法

__autoload

__autoload 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

如果要定义一个全局的自动加载类,则必须用spl_autoload_reGISter()方法将处理类注册到PHP标准库:

<?php  
class Loader  
{  
static function autoload_class($class_name)  
{  
//寻找正确的$class_name类,并引入,没有则抛出异常  
}  
}  
  
  
spl_autoload_register(array('Loader', 'autoload_class'));  
  
$a = new Test();//Test没用require就实例化,实现自动加载,很多框架就用这种方法自动加载类  
  
?>

注意: 在 __autoload 函数中抛出的异常不能被 catch 语句块捕获并导致致命错误,所以应该在函数本身做捕获。

__construct、__destruct

__construct 构造方法,当一个对象创建时调用此方法,相对于PHP4使用此方法的好处是:可以使构造方法有一个独一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造方法的名称

__destruct 析构方法,PHP将在对象被销毁前(即从内存中清除前)调用这个方法。默认情况下,PHP仅仅释放对象属性所占用的内存并销毁对象相关的资源,析构函数允许你在使用一个对象之后执行任意代码来清除内存。当PHP决定你的脚本不再与对象相关时,析构函数将被调用。

在一个函数的命名空间内,这会发生在函数return的时候。

对于全局变量,这发生于脚本结束的时候。

如果你想明确地销毁一个对象,你可以给指向该对象的变量分配任何其它值.通常将变量赋值勤为NULL或者调用unset.

__clone

PHP5中的对象赋值是使用的引用赋值,如果想复制一个对象则需要使用clone方法,在调用此方法是对象会自动调用__clone魔术方法,如果在对象复制需要执行某些初始化操作,可以在__clone方法实现。

__toString

__toString方法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时。

如果类没有实现此方法,则无法通过echo打印对象,否则会显示:Catchable fatal error: Object of class test could not be converted to string in

此方法必须返回一个字符串。

在PHP 5.2.0之前,__toString方法只有结合使用echo() 或 print()时 才能生效。PHP 5.2.0之后,则可以在任何字符串环境生效(例如通过printf(),使用%s修饰符),但 不能用于非字符串环境(如使用%d修饰符)。从PHP 5.2.0,如果将一个未定义__toString方法的对象 转换为字符串,会报出一个E_RECOVERABLE_ERROR错误。

__sleep、__wakeup

__sleep 串行化的时候用

__wakeup 反串行化的时候调用

serialize() 检查类中是否有魔术名称 __sleep 的函数。如果这样,该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组

使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。

相反地,unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在,此函数可以重建对象可能具有的任何资源。

使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。

__set_state

当调用var_export()时,这个静态 方法会被调用(自PHP 5.1.0起有效)。

本方法的唯一参数是一个数组,其中包含按array(’property’ => value, …)格式排列的类属性。

__invoke

当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。

PHP5.3.0以上版本有效

__callStatic

它的工作方式类似于 __call() 魔术方法,__callStatic() 是为了处理静态方法调用,

PHP5.3.0以上版本有效

PHP 确实加强了对 __callStatic() 方法的定义;它必须是公共的,并且必须被声明为静态的。同样,__call() 魔术方法必须被定义为公共的,所有其他魔术方法都必须如此。

--结束END--

本文标题: php下划线是什么意思

本文链接: https://www.lsjlt.com/news/1122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php下划线指的是什么意思
    这篇文章将为大家详细讲解有关php下划线指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php中一个下划线表示的是私有变量以及私有方法,两个下划线是PHP内置变量,比如php规定以两个下划线开...
    99+
    2023-06-26
  • python单下划线指的是什么意思
    小编给大家分享一下python单下划线指的是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • css中划线什么意思
    css中的划线是一种文本装饰属性,用于在文本下方添加水平线,通过text-decoration属性设置,可选值有none(无划线)、underline(下划线)和line-through...
    99+
    2024-04-26
    css
  • php双竖线是什么意思
    这篇文章主要讲解了“php双竖线是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php双竖线是什么意思”吧!php双竖线表示PHP逻辑运算符中的“或”,“或”运算符的表达式是“x |...
    99+
    2023-06-21
  • 关键字 var 后面的下划线和接口名称是什么意思?
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《关键字 var 后面的下划线和接口名称是什...
    99+
    2024-04-05
  • php是什么意思
    PHP是一种通用开源脚本语言,与C语言类似,是常用的网站编程语言,随着移动应用的兴起,也可用于开发API接口,几乎支持所有流行的数据库以及操作系统,PHP 语言作为当今热门的网站程序开发语言,它具有成本低、速度快、可移植性好、内置丰富的函数...
    99+
    2024-04-02
  • css基线是什么意思
    今天就跟大家聊聊有关css基线是什么意思,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 在css中,基线“base li...
    99+
    2024-04-02
  • python变量中单下划线和双下划线的区别是什么
    python变量中单下划线和双下划线的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量的定义在Python中,有以下几种方式来定义变量:xx:公有变量_xx:前...
    99+
    2023-06-02
  • php bom是什么意思
    php bom是用来判断文本文件是哪一种Unicode编码的标记;在utf-8编码文件中,BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑php b...
    99+
    2023-05-14
    php bom
  • php pmp是什么意思
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。php pmp是什么意思PMP的意思:PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute,简称PM...
    99+
    2022-11-23
    pmp php
  • php中++是什么意思
    php 中 ++ 的含义 在 PHP 中,++ 运算符是一个单目运算符,用于对一个变量或表达式的值进行递增操作。 如何使用 ++ 运算符 前 ++ (前缀递增):将 ++ 放在变量或表达...
    99+
    2024-04-27
    c++
  • Python中私有属性下划线和双下划线的区别是什么
    今天小编给大家分享一下Python中私有属性下划线和双下划线的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Py...
    99+
    2023-07-05
  • php aco是什么意思
    在php中,ACO是指“访问控制对象”,每个具体的ACO也有一个标识,就按照M/C/A的格式进行标识;根据具体的业务要求,ACO可以定义到某个具体的Action级别,或者Controller级别或者整个module级别。本教程操作环境:wi...
    99+
    2023-05-14
    aco php
  • php中是什么意思
    php中的$globals是一个内置的超全局变量,可用于访问当前脚本中定义的所有全局变量,包括访问其他函数定义的全局变量、修改其他函数定义的全局变量以及在嵌套函数中访问外部范围的全局变量...
    99+
    2024-04-27
  • php中@是什么意思
    php 中的 @ 运算符用于抑制错误报告,它会将紧随其后的表达式的错误和警告消息抑制掉。它将错误和警告消息发送到服务器日志中。常用于调试、错误处理和输出控制。不能抑制致命错误,过度使用可...
    99+
    2024-04-27
  • php中==是什么意思
    php中==运算符比较两个表达式的值是否相等。它按照规则比较值和类型,执行类型转换以匹配不相等类型,并返回true(相等)或false(不相等)。与===运算符不同,后者不转换类型,只有...
    99+
    2024-04-27
  • php是什么意思啊
    php是指一种通用开源脚本语言,中文名为超文本预处理器,它吸收了C语言、Java和Perl的特点,几乎支持所有流行的数据库以及操作系统,具有成本低、速度快、可移植性好、内置丰富的函数库等优点,它主要适用于Web开发领域,也可以用于开发API...
    99+
    2024-04-02
  • php mail是什么意思
    php mail是php邮件的意思,在php中是指mail()函数,该函数用于从脚本中发送电子邮件;其使用语法是“mail(to,subject,message,headers,parameters)”;php运行邮件函数需要一个已安装且正...
    99+
    2023-05-14
    mail php
  • php中%是什么意思
    php中的%符号用于字符串格式化,它是格式说明符的一部分。格式说明符包含占位符和格式标志:占位符 (%s):变量占位符,表示字符串。格式标志:%d:整数%f:浮点数%s:字符串%b:二进...
    99+
    2024-04-29
  • php web是什么意思
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php web是什么意思web 是网页,网站;php 是一种程序语言;phpweb 是 用php做的网站.PHP(PHP: Hypertext Preprocesso...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作