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

__autoload

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

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

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

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

(原帖:http://blog.csdn.net/zlking02/article/details/6752256)

时间: 2024-08-24 08:58:28

PHP中用下划线开头的变量含义的相关文章

python以下划线开头的变量名含义

Python核心风格:避免用下划线作为变量名的开始. 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始.一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用.当变量是私有的时候,用_xxx 来表示变量是很好的习惯.因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格. "单下划线" "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问

python下划线,私有变量

转自:http://blog.sina.com.cn/s/blog_58649eb30100g4zo.html Python用下划线作为变量前缀和后缀指定特殊变量. "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量:不能用“from xxx import *”而导入: "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据. 以双下划线开头和结尾的代表python里特殊方法专用的标识,如 _

“layout_”下划线开头的属性

观看幕课网的视频的收获 “layout_”下划线开头的属性都是交给父容器去处理的属性,如: android:layout_width="match_parent" android:layout_height="match_parent" 没有layout_”下划线开头的属性都是本身的属性,如: android:background="#00ff00" android:visibility="gone"

Python中单下划线开头的特性

1.带有单下划线的特性不会被 from module import *导入. 2.单下划线是Python程序员使用类时的约定,表明程序员不希望类的用户直接访问属性.仅仅是一种约定!实际上,实例._变量,可以被访问. 参考资料: http://blog.csdn.net/debugm/article/details/8179482

【class】类的内置方法 双下划线开头和结尾的

 内置方法  说明  __init__(self,...)  初始化对象,在创建新对象时调用  __del__(self)  释放对象,在对象被删除之前调用  __new__(cls,*args,**kwd)  实例的生成操作  __str__(self)  在使用print语句时被调用  __getitem__(self,key)  获取序列的索引key对应的值,等价于seq[key]  __len__(self)  在调用内联函数len()时被调用  __cmp__(stc,dst)  比较

erlang 中带下划线变量的使用

在erlang里'_'是一个特殊的变量(其实erlang里不应该叫“变”量,照顾习惯,姑且这么叫吧),它可以代替任何东西,在match的时候非常有用,例如: Erlang代码   {A, _, [B|_], {B}} = {abc, 23, [22, 23], {22}} 这样,就是把_当作一个占位符,表示,match的时候这里有一个值,但是我不关心他是什么 在erlang里,使用下划线'_'开头的变量名是有特殊含义的,除了当作普通的变量使用(binding,match,compute,comp

Python 的类的下划线命名有什么不同?

1,以一个下划线开头的命名 ,如_getFile2,以两个下划线开头的命名 ,如__filename3,以两个下划线开头和结尾的命名,如 __init__()4,其它这些命名有什么不同吗 首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var

python:类5——Python 的类的下划线命名有什么不同?

首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象. 在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需

python的下划线

首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象. 在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需