PHP基础知识
● array get_defined_constants ([ bool $categorize = false ] )
返回当前所有已定义的常量名和值,$categorize=true 时返回常量分类后的多维数组
● json_encode($value, $flag)
对变量主要是数组进行 JSON 编码
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
JSON_ERROR_NONE (int) 没有错误发生。 JSON_ERROR_DEPTH (int) 到达了最大堆栈深度。 JSON_ERROR_STATE_MISMATCH (int) 出现了下溢(underflow)或者模式不匹配。 JSON_ERROR_CTRL_CHAR (int) 控制字符错误,可能是编码不对。 JSON_ERROR_SYNTAX (int) 语法错误。 JSON_ERROR_UTF8 (int) 异常的 UTF-8 字符,也许是因为不正确的编码。 JSON_ERROR_RECURSION (int) 传递给 json_encode() 函数的对象或数组包含了递归引用,导致无法被编码。如果打开了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则牵涉到递归引用的数据会转换成 null 后返回。 JSON_ERROR_INF_OR_NAN (int) 传递给 json_encode() 函数的参数中包含了 NAN 或 INF,导致编码出错。如果打开了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则牵涉到对应不可编码的数字,会转换成数字 0 后返回。 JSON_ERROR_UNSUPPORTED_TYPE (int) 传递了不支持的数据类型给 json_encode() 函数,比如 resource。如果打开了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则对于不支持的数据类型,会转换成 null 后返回。 JSON_ERROR_INVALID_PROPERTY_NAME (int) A key starting with \u0000 character was in the string passed to json_decode() when decoding a JSON object into a PHP object. JSON_ERROR_UTF16 (int) Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to json_encode(). 下面的常量可以和 json_decode() 的 form 选项结合使用。 JSON_BIGINT_AS_STRING (int) 将大数字编码成原始字符原来的值。 JSON_OBJECT_AS_ARRAY (int) 将 JSON 对象作为数组解码。当调用 json_decode() 且第二个参数为 true 时此选项会自动添加。 下面的常量可以和 json_encode() 的 form 选项结合使用。 JSON_HEX_TAG (int) 所有的 < 和 > 转换成 \u003C 和 \u003E。 JSON_HEX_AMP (int) 所有的 & 转换成 \u0026。 JSON_HEX_APOS (int) 所有的 ' 转换成 \u0027。 JSON_HEX_QUOT (int) 所有的 " 转换成 \u0022。 JSON_FORCE_OBJECT (int) 使一个非关联数组输出一个类(Object)而非数组。 在数组为空而接受者需要一个类(Object)的时候尤其有用。 JSON_NUMERIC_CHECK (int) 将所有数字字符串编码成数字(numbers)。 JSON_PRETTY_PRINT (int) 用空白字符格式化返回的数据。 JSON_UNESCAPED_SLASHES (int) 不要编码 /。 JSON_UNESCAPED_UNICODE (int) 以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)。 JSON_PARTIAL_OUTPUT_ON_ERROR (int) 用不可编码的值来代替失败。 JSON_PRESERVE_ZERO_FRACTION (int) 确保 float 值始终编码为为 float 值。 JSON_UNESCAPED_LINE_TERMINATORS (int) The line terminators are kept unescaped when JSON_UNESCAPED_UNICODE is supplied. It uses the same behaviour as it was before PHP 7.1 without this constant. Available since PHP 7.1.0. 下面的常量可以和 json_decode() 及 json_encode() 的 form 选项结合使用。 JSON_INVALID_UTF8_IGNORE (int) 忽略无效的 UTF-8 字符。自 PHP 7.2.0 起生效。 JSON_INVALID_UTF8_SUBSTITUTE (int) 将无效 UTF-8 字符转换为 \0xfffd(Unicode 字符"虚缺号")。自 PHP 7.2.0 起生效。 JSON_THROW_ON_ERROR (int) 如果发生错误则会抛出 JsonException,而不是通过 json_last_error() 和 json_last_error_msg() 检索设置到全局的错误状态。JSON_PARTIAL_OUTPUT_ON_ERROR 优先于 JSON_THROW_ON_ERROR。自 PHP 7.3.0 起生效。
● json_decode(string $json [, bool $assoc)
对 JSON 格式的字符串进行编码
当参数$assoc为 TRUE 时,将返回 array 而非 object 。
● serialize(mixed $value)
产生一个可存储的值的表示,主要是把数组转换成字符串,便于传递
结果默认已经转义,无须再用 addslashes()
● unserialize(string $str)
从已存储的表示中创建 PHP 的值,主要是把字符串还原成数组
● array get_defined_vars — 获取由所有已定义变量所组成的数组
● array get_defined_functions — 获取所有已经定义的函数
● array get_loaded_extensions — 获取所有可用的模块
● array get_extension_funcs — 获取指定模块的可用函数,传入的参数(模块名称)必须是小写
print_r(get_extension_funcs("gd"));
print_r(get_extension_funcs("xml"));
● array get_defined_constants — 获取关联数组的名字所有的常量和他们的价值
● array get_declared_classes — 获取由已定义类的名字所组成的数组
● get_included_files() 和 get_required_files() — 返回被 include 和 require 文件名的 array
● 用 PHP_EOL 代替写入文本文件的回车换行(windows系统为 \r\n ,unix系统为 \n ,MAC 为 \r ,MAC OS X 为 \n
● file_put_contents($file, $data, FILE_APPEND | LOCK_EX)
FILE_APPEND | LOCK_EX 追加方式写入,且写入时锁定
● int memory_get_usage ([ bool $real_usage = false ] )
返回当前分配给你的 PHP 脚本的内存量,单位是字节(byte)。
int memory_get_peak_usage ([ bool $real_usage = false ] )
返回分配给你的 PHP 脚本的内存峰值字节数。
如果设置为 TRUE 可以获取从系统分配到的真实内存尺寸。 如果未设置,或者设置为 FALSE,仅会报告 emalloc() 使用的内存。
几个 PHP 的"魔术常量"
名称 | 说明 |
---|---|
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) = |
__FUNCTION__ | 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 |
__CLASS__ | 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。 |
__TRAIT__ | Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。 |
__METHOD__ | 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 |
__NAMESPACE__ | 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。 |
- call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
- call_user_func — 把第一个参数作为回调函数调用
- create_function — Create an anonymous (lambda-style) function
- forward_static_call_array — Call a static method and pass the arguments as array
- forward_static_call — Call a static method
- func_get_arg — 返回参数列表的某一项
- func_get_args — 返回一个包含函数参数列表的数组
- func_num_args — Returns the number of arguments passed to the function
- function_exists — 如果给定的函数已经被定义就返回 true
- get_defined_functions — 返回所有已定义函数的数组
- register_shutdown_function — 注册一个会在php中止时执行的函数
- register_tick_function — 注册一个函数以便在每个 tick 上执行
- unregister_tick_function — De-register a function for execution on each tick