PHP学习笔记整理

来源:互联网 发布:王者荣耀优化安卓7.0 编辑:程序博客网 时间:2024/05/21 10:02
array class_parents ( mixed $class [, bool $autoload ] ):本函数返回一个包含了指定类class父类名称的数组。 

array get_defined_constants ([ bool $categorize = false ] ):返回一个数组,包含所有已经定义的常量名称和值;

bool method_exists ( object $object , string $method_name ):如果 method_name 所指的方法在 object 所指的对象类中已定义,则返回 TRUE,否则返回 FALSE;

不是http协议本身对get请求数据的大小做了限制,而是浏览器和操作系统对它做了限制(不同浏览器或系统的限制不一样),post方式的请求数据大小没做限制;

在PHP中数字与布尔值的关系:0被视为FALSE,其它数字(正数和负数)都被视为TRUE;

使用echo输出布尔值的时候,TRUE会被转换为整数1,FALSE会被转换为空字符串;

如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图;

浮点数只是一个近似值,尽量避免使用==来比较两个浮点数,因为最后的结果往往不准确;

双引号指定的字符串会消耗更多PHP预处理器的时间,如果无需在字符串中引用变量,则应使用单引号指定字符串;

当if…else…比较多时可以考虑使用switch语句,用作值比较的数据类型最好是整数或字符串;

header("Content-Type:text/html;charset=utf-8"):设置浏览器打开文件的MIME类型和字符集;
header("Location: ../index.php"):网页跳转;
header('refresh:5;url=index.php'):带延时的网页跳转,单位为秒;
如果使用header()来进行网页跳转,则一般将它与exit()搭配使用,以防止程序继续执行header()后面的代码;

在数据库中保存账户密码前应使用md5()函数进行加密,用户登录时填写的密码需要加密后再进行验证;

$_REQUEST默认情况下包含了$_GET、$_POST和$_COOKIE数组,但它的速度比较慢,不推荐使用,而且,由于 $_REQUEST 中的变量通过 GET,POST 和 COOKIE 输入机制传递给脚本文件,因此可以被远程用户篡改而并不可信;

当一个Form表单中存在文件上传框时,必须将<form>标签的enctype属性设置为multipart/form-data;

上传的文件应该用$_FILES接收,不是用$_POST;

自定义函数中,带默认值的参数最好放在参数列表尾部;

当要在数据库中保存含有html或javascript代码的内容前,应先使用htmlspecialchars()函数对内容进行过滤;

对于从表单、cookies、URL传递过来的参数一定要严格检查,以防止SQL注入等攻击的发生;

两个字符串进行比较时,应使用strcmp()或strcasecmp()函数,不应使用==;

EOT定界符<<<lable的结尾符一定要独自占一行,前后不能有其它字符,包括空格;

EOT定界符<<<lable中的变量要用{}括起来;

坚持使用<?php ?>的脚本开始结束标记,不要使用短标记;

使用变量前为变量赋一个初始化的值,是一个良好的编程习惯;

产生随机数应使用mt_rand()函数,它比rand()函数要快得多;

传递引用时,只需在函数声明中添加引用符号&,函数调用时不需添加;

在某些情况下正则匹配的速度不是很快,所以如果可以用PHP的ctype函数来验证数据的,则尽量用ctype函数;

foreach ($data as &$arr):操作$data数组本身,而不是操作它的副本;

pdo mysql正确的dsn写法: "mysql:host=localhost;port=3306;dbname=itblog"

settype():改变变量本身的数据类型

get_class($obj):查看一个对象是哪个类的实例(在类外部使用)

__CLASS__:常量,在类内部使用,获取本类的类名

A instanceof B:检查A对象是否是B类的实例,是返回TRUE,否返回FALSE
0 0
原创粉丝点击