比较两个字符串 strcmp
== 只能比较两个字符串是否相等
我们可以使用strcmp()比较字符串,不仅能比较是否相当,还能比较大小。
strcmp(str1,str2) 如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
延伸:strcasecmp(),不区分大小写比较。
小技巧:cmp 我理解就是比较compare的简写,这样就不会记错啦。
地址符& 类比go语言的传值还是传引用
PHP类的调用不需要传地址符&,会自动调用类里面的内容
PHP标记语言用什么符号?
不止用,还可以用、<% %>标记PHP语言。
mysql_pconnect() 和 mysql_connect()区别
两者看起来非常相似,前者虽然只多了一个P, 但有两个主要区别:
mysql_pconnect与数据库建立持久链接,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。其次,当脚本执行完毕后,SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用。
注意:mysql_close() 不会关闭由 mysql_pconnect() 建立的连接
静态static
静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
PDO对象中的成员方法:
我使用yaf框架开发的时候自定义了baseModel,对PDO的成员方法进行了封装。
当使用Laravel之后,就不需要关心PDO的成员方法了,只需要关心Eloquent怎么用。
getAttribute() 获取一个数据库连接对象的属性
setAttribute() 为一个数据库连接对象设定属性
errorCode() 获取错误码
errorInfo() 获取错误信息
exec() 处理一条SQL语句,并返回所影响的条数
query() 处理一条SQL语句,并返回一个PDOStatement对象
quote() 为某个sql中的字符串添加引号
lastInsertId() 获取插入到表中的最后一条数据的主键
prepare() 负责准备执行的sql语句
getAvailableDriver() 获取有效的PDO驱动器名称
beginTransaction() 开始一个事务
commit() 提交事务
rollback() 回滚事务
读取文件
- fread() 最大一次性能读取 8k长度的字节数,所以不能一次性读取大文件去作下载。 优势在于,操作更加灵活,每次读取指定字节的内容,用于下载时方便控制服务器的流量。
- readfile() 优势是能够一次性读取大文件;不需要PHP预读到内存,下载速度更快,直接把文件的处理交由服务器。缺点就是不能控制负载。所以它是没有内存限制的,如果遇到报内存错误,先调用 ob_end_flush()之类的函数关闭缓冲区。
- file_get_contents 也是没 readfile()快, 因为也是走了php的内存。但是在读取小文本内容到字符串变量时,这个函数最适合使用,简单,更快。
- file() 和file_get_contents()差不多