![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 84
烟草的香味.
这个作者很懒,什么都没留下…
展开
-
PHP require/include 区别
在中, 载入文件可以选择使用, 也可以使用, 那么那他们有什么区别呢? 看了网上的一些文章, 说他们使用场景不同, 一般在文件开头引入文件, 一般在函数中动态引入文件.但是我觉得并不是这么简单, 是作为语言结构(关键字)出现的, 关键字这玩意对于语言设计者来说一般都是越少越好, 关键字少了语言才简单嘛. 于是我决定深入到源码级别来康康他们的区别.通过查看, 这几个方法翻译后是同一个函数.如何拿到这个函数可看这篇文章: https://hujingnb.com/archives/836查看方法:方法的处理方式原创 2022-06-25 19:43:29 · 170 阅读 · 0 评论 -
PHP获取Opcode及C源码
在开始之前, 必须要先介绍一下是什么.众所周知, 在执行的时候, 会将后缀的文件预先编译为字节码文件, 加载字节码文件进行解释执行. 而字节码文件存在的意义, 就是为了加速执行.那么的与之类似, 也是从文件到执行的过程中, 所生成的预编译中间文件.或者也可以这样粗鲁的理解, 程序是由写的二进制程序, 就是将文件翻译为代码的结果.有什么用我们最后再说, 先让我们看一下它长什么样子如何获得文件的呢? 在的源码中, 可以通过函数获取代码解析后的. 但是我们要是为了获取得深入到, 是在有些得不偿失. 好在, 已经有原创 2022-06-25 13:18:32 · 1343 阅读 · 0 评论 -
PHP 数组的内部实现
前言这几天在翻github的时候, 碰巧看到了php的源码, 就 down 下来随便翻了翻. 地址: https://github.com/php/php-src那么PHP中什么玩意最引人注目嘞? 一定是数组了, PHP中的数组太强大了, 于是就想着不如进去看看数组的实现部分. 这篇文章打算全程针对代码进行解读了.以下代码基于最新 php8.1. commitId: ea62b8089acef6551d6cece5dfb2ce0b040a7b83 .感兴趣的可自行下载查看.探究首先, 如此强大的数原创 2022-03-07 22:59:02 · 510 阅读 · 0 评论 -
PHP-PDO参数绑定问题
前言今天在执行这样一段代码:$data = [ 'username' => 'hujingnb', 'address' => 'beijing',];$dbh = new PDO("mysql:host={$host};dbname={$dbname}", $username, $password);$statement = $dbh->prepare('INSERT INTO `test_user` (`username`, `address`) VALUES原创 2021-10-02 15:54:14 · 464 阅读 · 0 评论 -
PHP8的注解
PHP8.0增加了注解的支持, 虽然 PHP的注解没用过, 但是咱用过JAVA的注解呀.注解这玩意怎么用? 简单说就下面几步:定义注解类使用注解提取注解到了PHP中, 也基本上换汤不换药.使用定义注解类#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_FUNCTION)]class MyAttribute{ private $value; public function __construct($value)原创 2021-01-30 16:02:10 · 2510 阅读 · 0 评论 -
PHP为什么empty可以访问不存在的索引
开始之前, 先抛出问题:$arr = [];echo 'empty: ', PHP_EOL;var_dump(empty($arr['1']));echo 'is_array: ', PHP_EOL;var_dump(is_array($arr['1']));这段代码的运行结果:你是否和我有过同样的疑问? 同样是函数, 为什么empty访问不存在的索引就不会报错呢? 按理说哈, 函数调用的时候, 会将将参数传值过去吧, 也就是说两个函数的调用第一步, 都是要把$arr['1']这个内容取出原创 2020-12-19 19:11:44 · 175 阅读 · 2 评论 -
PHP usort 函数底层排序
引出最近在一个项目中, 需要对一个数组的顺序进行调整, 允许手动将某一个元素提到数组的开头位置. 在这里, 使用了PHP中的usort函数进行了数组的排序, 代码大致如下:usort($arr, function ($a, $b){ // 这里添加了 order 字段, 默认为0, 将order大的提到前边 return $b['order'] - $a['order'];...原创 2020-05-02 01:55:41 · 630 阅读 · 0 评论 -
PHP的stdClass
概述以下是百度百科对php中的 stdClass的描述:stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。**stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL.**凡是用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用。PHP5的对象的独特性,对象在任何地方...原创 2019-10-24 22:42:49 · 200 阅读 · 0 评论 -
PHP 循环引用的问题
问题为了引出问题, 先来看下面一段代码:<?php$arr = [ 'a', 'b', 'c', 'd',];foreach ($arr as &$each){ echo $each;}echo PHP_EOL;foreach ($arr as $each){ echo $each;}这段代码很简单, 输出数组的元素两次...原创 2019-07-14 17:01:28 · 160 阅读 · 0 评论 -
PHP注释标记整理
什么是注释标记我们在平常写代码或看别人写的代码时, 在方法的说明注释中经常会有这样的注释:/** * @param $num * @return array */上面的*@param* @return 就是注释标记注释标记用于生成文档, param指明需要接收的参数, return指明返回值在使用 phpDocumentor 等工具生成文档时, 会识别相关注释, 而且IDE也会识...原创 2019-07-01 22:37:37 · 982 阅读 · 0 评论 -
PHP 自动加载
回顾开始的时候, 如果想在一个php文件中使用其它文件的类或方法, 需要通过include/require方法将文件包含进来. 这种方法的缺点也很明显:如果需要引入很多文件, 就需要很多的include语句, 不仅不美观, 而且也难免会又遗漏如果多个文件中定义了相同名称的常量, 会导致抛出重复定义的警告autoload为了解决这个问题, 在PHP5中引入了自动加载的概念, 通过 __...原创 2019-06-02 23:05:17 · 397 阅读 · 0 评论