在PHP中,_file_或microtime_float中的“_”代表什么和怎么用

如题所述

在php中,对于变量名与函数、过程名的约定是:可以是任何字母、数字、下画线组成,不能与数字开始。

_file_ 或microtime_float, 也就是定义了一个变量或是常量之类的标志符。_什么都不代表。

在php语言中,__(两个下划线在一起)定义的函数、方法比较特殊,称之为“魔术”方法、魔术常量等,以下是一些常见的:

PHP 魔术常量

__LINE__ //文件中的当前行号(包含注释行)
__FILE__ //文件的完整路径和文件名
__FUNCTION__ //当前所在的函数名称(PHP 4.3.0 新增)
__CLASS__ //当前所在的类的名称( PHP 4.3.0 新增)
__METHOD__ //当前所在的类的方法名( PHP 5.0.0 新增)

魔术方法:

1、__construct()
当实例化一个对象的时候,这个对象的构造方法将首先被调用;
我们知道php5对象模型和类名相同的函数是类的构造函数,那么如果同时定义构造函数和__construc()方法的话,php5会默认调用__contruct()而不会调用同类名函数,所以__contruct()作为类的默认构造函数
2、__destruct()
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
3、__get(string $name)
当试图读取一个并不存在的属性时被调用;如果试图读取一个对象并不存在的属性的时候,php就会给出错误的信息。如果在类里添加__get方法,并且我们可以用这个函数实现类似java中的反射的各种操作。
4、__set(string $name, mixed $value)
给未定义的变量赋值时将被调用
5、__call(string $name, array $arguments)
当调用一个不可访问方法(如未定义,或者不可见)时,__call() 会被调用。
6、__toString()
当打印一个对象的时候被调用,这个方法类似于java的toString方法,当我们直接打印对象的时候回调这个函数。追问

既然这"_"不代表什么,那么是不是可以不要这"_"呢?如 “_function_” 变成"function" ,“_link_”变成 "link" ,microtime_float 变成 microtime float ,_construct()变成 construct() ,意义和用法会是一样的吗?

追答

不能一概而论。

“_link_”变成 "link",这个符合标识符规则。

microtime_float 变成 microtime float 这个就不符合规则了。因为原来是一个标识符,另一个变成两个单词了。

__construct()变成 construct() 也是不行的,少一个下划线都不行,少一个就不是魔法方法,而变成普通的方法了。

一般来说,_想当于连字符,其用途是将两个独立的单词变成一个符合规则的标识符,比如:我要定义某个变量,又想要这个变量名有意义,让我一看就知是干什么的,比如 table_have_data,如果不用_连起来就成了三个单词,而这是php语法规则所不允许的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-27
不代表什么“_file_”是一体的。追问

那你知道这个“_”是怎么用吗?

在PHP中,_file_或microtime_float中的“_”代表什么和怎么用
_file_ 或microtime_float, 也就是定义了一个变量或是常量之类的标志符。_什么都不代表。在php语言中,__(两个下划线在一起)定义的函数、方法比较特殊,称之为“魔术”方法、魔术常量等,以下是一些常见的:PHP 魔术常量 __LINE__ \/\/文件中的当前行号(包含注释行)__FILE__ \/\/文件的完整路径...

PHP里的((float)是什么意思啊
在这个语法里,你分解的时候多打了括号,应该是(float)意思是把毫秒和秒转化成浮点数进行运算,以防整数数据溢出

php获取 $_FILES['file']['name']时候文件名前面少了一个字母
if($fileInfo['size']>$maxSize){ exit('上传文件过大');} if(!is_uploaded_file($fileInfo['tmp_name'])){ exit('文件不是通过HTTP POST方式提交上来的');} \/\/确保文件名字唯一,防止同名文件被覆盖 uniqName=md5(uniqid(microtime(true),true)).'.'.$ext;path="uploads";if(!file_e...

PHP 函数microtime()的问题
这样输出的就是该时间戳所对应的时间.

php 中 这个函数microtime(1) 具体输出内容是什么?
1是表示true,microtime()调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() ...

php microtime获取浮点的时间戳
microtime());return ((float)$usec + (float)$sec);} 看到别人的源码中用microtime(true),查了下手册,原来从PHP 5.0.0 开始,microtime增加了这个参数。引用 复制代码 代码如下:mixed microtime ([bool get_as_float])microtime()当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday()系...

PHP microtime使用,第一个返回的到底是微妙还是毫秒?
获得的值是微秒 microsecond。比如0.25139300 ,有效数字是6位,正好符合1秒=1,000毫秒=1,000,000微秒 使用echo microtime(true);直接获得浮点值。楼主测到一个0.35时差,可能是巧合正好在350毫秒之间。函数本身精确到微秒的。

microtime函数原型与详细说明
在编程中,我们有时需要精确地获取当前的时间信息,这时可以利用 PHP 内置的 microtime() 函数。这个函数的原型如下:string microtime ( void )它的主要功能是返回一个字符串,格式为 "msec sec",其中 "sec" 代表当前的 Unix 时间戳,即自1970年1月1日以来的秒数。这个时间戳是从0开始,单位是秒...

php获取当前时间
microtime() 可以获得当前 UNIX 时间戳和微秒数。具体语法为:mixed microtime ([ bool $get_as_float ] )若是设置 get_as_float 参数值为 true,那么microtime() 将返回一个浮点数;若是不带参数,那么返回一个“msec sec”格式的字符串,其中 sec 是自 UNIX 纪元起到现在的秒数,而msec则是...

PHP处理数组常用的几个函数
reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名 \/\/srand((float)microtime()*10000000); 随机种子触发器 array_rand($arr,2); 从数组中随机取出一个或 多个元素 shuffle($arr); 将数组的顺序打乱 求课吧有很多关于PHP编程方面的教程 ...

相似回答