初始化前的总结

所涉及到的系统函数有下面

 

1.魔术常量(__FILE__)

php里面有3类魔术,魔术常量,魔术方法,魔术引号。这个地方

魔术常量就下面的7个,和普通常量不同,魔术常量随着所处的位置而发生变化。

php里面的魔术常量有7个,分别是:

__LINE__当前文件行号

__FILE__文件的完整路径和文件名(4.0.2起总是包含一个绝对路径,此前的版本有时会有相对路径)

__DIR__文件所在目录,等价于dirname(__FILE__),末尾不包含斜杠,除非是根目录。(5.3.0新增)

__FUNCTION__所在的函数名称(4.3.0新增,返回方法名一律小写),php5以后区分大小写。

__CLASS__所在类的名称(4.3.0新增,返回类名一律小写)php5以后区分大小写。

__METHOD__类的方法名称(5.0.0新增)区分大小写

__NAMESPACE__空间名称(编译时候定义,大小写敏感) v5.3.0新增

 

魔术方法: 

PHP把所有以__(两个下划线)开头的类方法当成魔术方法。所以当你定义类方法时,除了上述魔术方法,建议不要以 __为前缀

总共有14个魔术方法,分别是:

__construct :构造函数,初始化对象的时候会调用该方法,子类中存在构造函数时,不会阴式调用父类构造函数,显式调用parent::__construct()方法。为了向后兼容,如果没有__construct方法,则会寻找和类同名的函数。自5.3.3以后,命名空间里与类同名的方法或不再作为构造函数,不影响不在命名空间里面的类。

__destruct 析构函数 ,如果子类存在析构函数,不会自动调用父类的析构函数。脚本关闭的时候调用。

__call  当调用一个不可访问方法(如未定义,或者不可见)时,调用__call第一个参数是方法名,第二个参数是参数列表

__callStatic当试图中调用一个不可访问的静态方法时(如未定义,或者不可见)时【5.3.0新增】

__get 当获取未定义的属性时,会调用__get ,

__set  在给未定义的属性赋值时,会调用__set方法。 第一个参数是属性名,第二个参数是value

__isset  【5.1.0新增】

__unset 【5.1.0新增】

__sleep  序列化serialize ,如果该方法存在,先调用该方法,且返回要序列化的数组,如果返回NULL,NULL被序列化,且产生一个E_NOTICE错误。

__wakeup 反序列化,unserialize 会首先调用该方法。

__toString echo对象的时候,如果有该方法则调用该方法【5.2.0前只能用echo ,print,之后可以再任何字符串环境中运用】

__invoke  当尝试以调用函数的方式调用对象时,该方法将被调用【5.3.0及以上版本有效】

__set_state 当var_export被调用时,该方法会被调用【5.1.0起有效】

__clone 当对象复制的时候

 

魔术引号:

magic_quotes_gpc  【不推荐使用,5.3以后不推荐使用,5.4完全移除】。当它开启时,所有的(Get/Post/Cookie)gpc,中的单/双引号都会转义。

get_magic_quotes_gpc方法获取该配置状态。

   没有set方法,也不能通过ini_set来设置,只能修改配置文件,或者.htaccess文件。

 

magic_quotes_runtime 【不推荐使用,5.3以后不推荐使用,5.4完全移除】。运行时,当写入文件,读取文件等操作会影响

set_magic_quotes_runtime 设置开关,【5.3已废弃】,建议用ini_set来设置。

get_magic_quotes_runtime 获取配置状态。

 

为什么magic_quotes_gpc不能通过ini_set 来设置,而magic_quotes_runtime可以这样设置?

 

 注意到安装配置-->运行时配置-->where a configuration setting may be set

关于配置选项修改级别,有4个级别:

PHP_INI_USER   1  可以在程序里面通过ini_set 设置,也可以修改注册表(windows平台)

PHP_INI_PERDIR  6 只能在php.ini,.htaccess,和httpd.conf 修改

PHP_INI_SYSTEM 4 只能在php.ini,httpd.conf修改

PHP_INI_ALL        7  在所有地方都可以修改

 

哪些指令属于 PHP_INI_ALLPHP_INI_PERDIRPHP_INI_SYSTEM 中的哪一个,请参考附录中的

附录--php.ini配置选项列表:

magic_quotes_gpc "1" PHP_INI_PERDIR
magic_quotes_runtime "0" PHP_INI_ALL

一目了然了。

 

 

php魔术 告一段落。

 

2.函数dirname

 

该函数属于文件系统相关扩展(FileSystem 函数)

 dirname   :  返回目录路径。

basename:返回路径中的文件名部分。如果文件有后缀,指定第二个参数也可以将后缀去掉。

pathinfo :      返回文件路径的信息,2个参数,文件路径,及要返回的值(dirname,basename,extension)

realpath   :   返回规范化的路径,失败返回false

相似函数:

disk_free_space()可用空间

disk_total_space()总的空间大小

delete 同unlink 删除文件。

rmdir()删除目录,目录必须为空,且有权限操作,成功true,失败false,【5.0.0以后也可以用于某些url协议,支持上下文】

 

3.microtime   日历/时间相关函数  Date/Time函数

microtime()返回当前的时间戳和微秒数。【5.0.0后新增参数true/false】

 time()返回当前的时间戳(不含微秒)

mktime()获取一个日期的时间戳。时间戳是一个长整形,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。参数依次是,时,分,秒,月,日,年,【最后一个参数是表示十分是夏时制,5.1后废弃】,注意,该方法必须至少有一个参数,否则5.1后会抛出 throws E_STRICT notice. Use the time() function instead。如果参数非法,返回false,5.1之前返回-1.

gmmktime  获取GMT日期的unix的时间戳。和mktime()一样,只是返回的是格林威治标准时的时间戳

strtotime 将任何英文日期时间描述解析为 Unix 时间戳。

date(),格式化日期/时间,将给出的时间戳格式化成指定的格式。

 

 spl_autoload_register 函数【注册一个自动加载】版本php5.1.2以上。

 参数为callback类型。如果没有参数,自动注册autoload的默认实现函数spl_autoload()

有参数的话,自动调用该参数对应的方法。

5.3之后支持命名空间。

callback类型,在文档语言参考--类型--文档使用的伪类型中

介绍了3中伪类型,分别是

mixed:可以介绍多种类型,但是不是所有的类型

number,integer或float

callback 有的函数需要传递函数作为参数,如call_user_function,

不仅仅函数名还可以是对象的方法,包括静态方法。数组第一个元素是类名,第二个元素是方法。

还可以调用create_function 创建一个匿名的回调函数。

 

spl_autoload_unregister 注销注册的自动加载方法。

 spl_autoload_functions  获取已经注册的自动加载方法。

spl_autoload_extensions 修改默认实现函数 spl_autoload() 所使用的扩展名

void spl_autoload_call[$classname] 调用所有的已注册的自动加载函数来请求类。

 

strpos :查找字符串在第一个参数字符串中首次出现的位置 ,没找到返回false,,第三个参数代表查找的起始位置。

         stripos : 查找字符串首次出现的位置(不区分大小写)

         strripos :查找字符串在目标字符串中最后出现的位置(不区分大小写)

         strrchr :查找指定字符在字符串中的最后一次出现

         substr :截取字符串

         strstr ,返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。

         stristr    和strstr相比,不区分大小写。

 

is_file 函数:

              FileSystem函数

              判断文件是否为正常的文件。

realpath :返回规范化的绝对路径名.

basename:返回路径的文件名,如果有文件后缀,第二个参数指定后缀,可以去掉文件后缀

str_replace:将第三个参数中的所有第一个参数替换成第二个参数。

ltrim:去掉字符串开始位置的字符。默认空字符

          相似:rtrime,右边的字符。

          trime ,去除字符串两端的字符。

class_exists,interface_exists   【class/object函数】

 

is_dir 判断给定文件名是否是一个目录

相似的函数包括:

is_executable  判断给定文件名是否可执行,如果存在且可执行,返回true

is_file ,判断文件是否是正常文件,如果文件存在且为正常的文件则返回 TRUE

is_link,判断给定文件名是否为一个符号连接,如果文件存在且为符号链接返回true

is_readable 判断给定文件名是否可读,存在且可读返回true

is_uploaded_file 判断文件是否是通过 HTTP POST 上传的  文件是通过 HTTP POST 上传的则返回 TRUE

is_writable( is_writeable ) 判断给定的文件名是否可写 ,如果存在且可写返回true

 

这里涉及到超全局变量$_SERVER。

实际上超全局变量总共有9个,除了我们常见的$_GET,$_POST,$_REQUEST外

还包括$GLOBALS,$_SERVER,$_COOKIE,$_SESSION,$_FILES,$ENV

 

其中$_GET,$_POST,$_REQUEST是和浏览器请求相关的,

$_COOKIE是和cookie本地相关,$_SESSION和服务器session相关,

$_FILES和上传相关,$_SERVER和服务器相关,$ENV和环境相关。$GLOBALS,全局的变量。

你可能感兴趣的:(初始化)