随笔分类 -  PHP

PHP心路历程
摘要:dsn的host字段中,'localhost'是一个影响其连接协议的值,当host取值'localhost',PDO会坚持使用unixsocket的方式去连接数据库: 'mysql:host=localhost;dbname=mydb' 以上配置,PDO会寻找php.ini中的pdo_mysql.d 阅读全文
posted @ 2023-08-01 21:46 yiyide266 阅读(141) 评论(0) 推荐(0)
摘要:$foo = function(){ echo "foo()\n"; }; $foo(); call_user_func($foo); 以上两种调用callable类型的语法是无问题的,函数可以正常运行 下面来说一下习惯上认为可行,但事实上不可行的两个调用方法假设有以下代码,A实例的foo属性为一个 阅读全文
posted @ 2023-04-18 14:49 yiyide266 阅读(160) 评论(0) 推荐(0)
摘要:问题 倘若利用spl_autoload_register注册多个autoload_function,spl_autoload机制在自动加载的时候是否会由上至下把所有注册的函数运行一遍呢? 真相 看看如下例子: <?php function autoload_01() { var_dump("auto 阅读全文
posted @ 2022-04-10 14:54 yiyide266 阅读(68) 评论(0) 推荐(0)
摘要:一、概述 在php中,引用意味着用不同的symbol指向同一个变量内容。它的大致语法是: symbol_a =& symbol_b 它的正确解读方法是:把symbol_a的指向改变成指向symbol_b指向的结果上。 示例: $a = 1; $b =& $a; $a = 2; var_dump($b 阅读全文
posted @ 2020-05-26 10:34 yiyide266 阅读(193) 评论(0) 推荐(0)
摘要:概述 PHP中无论使用MySQL函数抑或PDO连接MySQL服务器,都允许有两种方式,一是通过TCP网络层,一是通过unix socket; PHP并没有给出指明用何种方式去连接数据库,决定使用何种方式去连接数据库的是,连接时host的指定: 1、当host为一个ip值时,PHP使用TCP网络层方式 阅读全文
posted @ 2019-11-24 18:21 yiyide266 阅读(597) 评论(0) 推荐(0)
摘要:一、获取静态方法调用者的类名 二、运用call_user_func_array代入对象作用域 阅读全文
posted @ 2018-11-22 20:07 yiyide266 阅读(2879) 评论(0) 推荐(0)
摘要:一、如果有一个非数字字符字符串跟0 == 运算时,会返回true $test = 'error'; var_dump($test == 0);//true 二、只有在对象在zval的refcount值为0时(即已经没有变量(symbol)引用这个zval时),才会触发对象的__destruct()方 阅读全文
posted @ 2018-11-07 14:12 yiyide266 阅读(416) 评论(0) 推荐(0)
摘要:1. define()函数如果定义了两个名称一模一样的常量,那么它将不会抛出错误,并且只有第一次的定义是生效的,再次定义并不会覆盖先前的值; 2. define()函数和关键字const定义常量的区别是,前者是在全局空间中都会生效,而后者如果定义了命名空间,只有在命名空间下才会生效; 阅读全文
posted @ 2018-10-21 00:01 yiyide266 阅读(271) 评论(0) 推荐(0)
摘要:一、session_start([array $options=array()]) 1.只能在输出http头前启动此函数,因为如果需要改写sessid的键和值,需要在http报文头发出前就开始定义了; 2.$options有很多选项,包括设在sessid的键名(但是好像不包括设置值),sess CG 阅读全文
posted @ 2018-09-27 11:42 yiyide266 阅读(191) 评论(0) 推荐(0)
摘要:1.命名空间前不能接"\"; 2.访问命名空间下的类/常量/函数是可以带"\"的,可以参考手册命名空间与动态语言特征 3.use引入类/常量/函数时,跟访问命名空间下的类/常量/函数一样,是可带可不带"\"的 或者 4.没有声明命名空间的地方统一用根作为命名空间,即"\" 5.在命名空间中调用别的命 阅读全文
posted @ 2018-07-29 21:59 yiyide266 阅读(185) 评论(0) 推荐(0)
摘要:一、flock概述 bool flock ( resource $handle , int $operation [, int &$wouldblock ] ) 参数handle 文件的指针,由 fopen() 创建的 resource (资源);operation operation 可以是以下其 阅读全文
posted @ 2018-05-31 09:45 yiyide266 阅读(275) 评论(0) 推荐(0)
摘要:bufferbuffer是一个内存地址空间,Linux系统默认大小一般为4096(4kb),即一个内存页。主要用于存储速度不同步的设备或者优先级不同的设备之间传办理数据的区域。通过buffer,可以使进程这间的相互等待变少。这里说一个通俗一点的例子,你打开文本编辑器编辑一个文件的时候,你每输入一个字 阅读全文
posted @ 2018-01-12 18:07 yiyide266 阅读(963) 评论(0) 推荐(0)
摘要:1.mixed PDO::errorCode ( void ) 如果单独执行此语句,并不能判断此时MYSQL是否已断开,它返回最上一次对MYSQL操作的错误码 2.public array PDO::errorInfo ( void ) 如果单独执行此语句,并不能判断此时MYSQL是否已断开,它返回 阅读全文
posted @ 2017-12-23 15:46 yiyide266 阅读(471) 评论(0) 推荐(0)
摘要:由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效。当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/session.gc_divisor(同样可以通过php.ini或者ini_set()函数来修改) 的值,来决 阅读全文
posted @ 2017-11-27 17:08 yiyide266 阅读(407) 评论(0) 推荐(0)
摘要:码一下curl上传多文件的行 5.5之前版本的写法 5.5以上版本的写法 合并其他的POST参数,POST出去 阅读全文
posted @ 2017-08-02 11:38 yiyide266 阅读(2233) 评论(0) 推荐(1)
摘要:最近一个后台常驻job通过redis的brpop阻塞读取消息时,设置了永不超时 但是在实际的使用中发现很短时间后就会退出,通过查看error log,发现:'RedisException' with message 'read error on connection' 提示 经过一番折腾,原来发现是 阅读全文
posted @ 2016-06-12 10:19 yiyide266 阅读(616) 评论(0) 推荐(0)
摘要:此函数适合大端序的二进制流 取十进制数$num的第$bit位起至$mask位,返回值是十进制数 原理,把$num左移动至$bit位,然后跟$mask相与,得到的就是掩码掩住的几位二进制数,例如(也就是0000 1010),取9的第2至第4位(101,也就是十进制数5),先右移动1位,然后跟7(也就是 阅读全文
posted @ 2016-06-07 11:43 yiyide266 阅读(1580) 评论(0) 推荐(0)
摘要:一、前面的话 PHP的pack和unpack提供了为一系列数据打包(pack)和解包(unpack)成2进制流的功能,这个功能在面向字节的字符串处理和套接字的编程环境中尤为适用。 在了解这两个函数之前,我们必须掌握一些关于面向字节流编程的概念,否则很难真正上理解它们。 1.什么是字节序 字节序,顾名 阅读全文
posted @ 2016-06-04 17:36 yiyide266 阅读(1861) 评论(0) 推荐(0)