随笔分类 - PHP
摘要:前言 在PHP中, 载入文件可以选择使用require, 也可以使用include, 那么那他们有什么区别呢? 看了网上的一些文章, 说他们使用场景不同, require一般在文件开头引入文件, include一般在函数中动态引入文件. 但是我觉得并不是这么简单, require是作为语言结构(关键
阅读全文
摘要:是什么 在开始之前, 必须要先介绍一下Opcode是什么. 众所周知, Java在执行的时候, 会将.java后缀的文件预先编译为.class字节码文件, JVM加载字节码文件进行解释执行. 而字节码文件存在的意义, 就是为了加速执行. 那么PHP的Opcode与之类似, 也是从.php文件到执行的
阅读全文
摘要:前言 这几天在翻github的时候, 碰巧看到了php的源码, 就 down 下来随便翻了翻. 地址: https://github.com/php/php-src 那么PHP中什么玩意最引人注目嘞? 一定是数组了, PHP中的数组太强大了, 于是就想着不如进去看看数组的实现部分. 这篇文章打算全程
阅读全文
摘要:PHP8.0增加了注解的支持, 虽然 PHP的注解没用过, 但是咱用过JAVA的注解呀. 注解这玩意怎么用? 简单说就下面几步: 定义注解类 使用注解 提取注解 到了PHP中, 也基本上换汤不换药. 使用 定义注解类 #[Attribute(Attribute::TARGET_CLASS | Att
阅读全文
摘要:开始之前, 先抛出问题: arr['1'])); echo 'is_array: ', PHP_EOL; var_dump(is_array($arr['1'])); 这段代码的运行结果: 你是否
阅读全文
摘要:引出 在实际使用中经常会有这样的需求, 多个PHP项目中用到了同一套代码, 如果靠复制粘贴的话, 不光代码不好维护, 而且同步起来也麻烦. 但是可以用 PHP 的包管理呀, composer. 那新的问题来了, 我们自己私人的包, 并不想开源出去, 怎么办呢? 来了, 利用gitlab github
阅读全文
摘要:引出 最近在一个项目中, 需要对一个数组的顺序进行调整, 允许手动将某一个元素提到数组的开头位置. 在这里, 使用了PHP中的usort函数进行了数组的排序, 代码大致如下: 但是, 今天我大哥突然告诉我, php的usort是不稳定的, 也就是在两个元素相等的情况下, 不能够保证两个元素的位置不变
阅读全文
摘要:概述 以下是百度百科对php中的 stdClass的描述: stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。 stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL. 凡是用new stdClass()的变量,
阅读全文
摘要:问题 为了引出问题, 先来看下面一段代码: 这段代码很简单, 输出数组的元素两次, 感觉会输出两次 abcd? 不好意思, 输出结果如下: 是不是感觉很奇怪?我没有给数组赋值啊,数组的最后一个元素怎么在第二次循环的时候改变了呢? 问题分析 再来看下面一段修改过得代码: 是不是发现了什么? 修改eac
阅读全文
摘要:什么是注释标记 我们在平常写代码或看别人写的代码时, 在方法的说明注释中经常会有这样的注释: 上面的 @param @return 就是注释标记 注释标记用于生成文档, param指明需要接收的参数, return指明返回值 在使用 phpDocumentor 等工具生成文档时, 会识别相关注释,
阅读全文
摘要:回顾 开始的时候, 如果想在一个php文件中使用其它文件的类或方法, 需要通过include/require方法将文件包含进来. 这种方法的缺点也很明显: 1. 如果需要引入很多文件, 就需要很多的include语句, 不仅不美观, 而且也难免会又遗漏 2. 如果多个文件中定义了相同名称的常量, 会
阅读全文
摘要:数组内容操作: array_change_key_case: 将数组键名修改为全大写或全小写 array_column: 提取出数组元素中的指定键 array_filter: 对数组中的值进行过滤 array_walk: 对数组中每个元素都通过函数进行处理 array_walk_recursive:
阅读全文
摘要:概述 什么是命名空间呢? 这个概念我第一次知道是在C++中. 首先, 为什么要用到命名空间呢? 当然是为了解决重名的问题了, 其实命名空间和Java中的包有着异曲同工之妙, Java中 a包下的Test类, 和b包下的Test类是两个类, 在使用的时候import不同包下即可, PHP中 a命名空间
阅读全文
摘要:概述 在PHP中有一种代码复用的技术, 因为单继承的问题, 有些公共方法无法在父类中写出, 而 Trait可以应对这种情况, 它可以定义一些复用的方法, 然后在你需要使用的类中将其引入即可. 刚开始的时候给我的感觉就是将trait代码块直接拿到类中的意思, 但后来我发现, 我太天真了. PHP中的T
阅读全文
摘要:Windows安装 下载php压缩包, http://php.net/downloads.php, 一定要下载Windows版本的呦 将压缩包解压到指定目录下: 创建配置文件, 其中有两个配置文件在根目录下: php.ini-production(生产环境)和php.ini-development(
阅读全文
摘要:语法 1. 代码块 php关键字不区分大小写 2.注释 3. 输出方法 4.特殊语法 5.变量类型强转 变量 1. 定义 注意: 在php中'+'只做数字加法, 无法拼接字符串, 拼接字符串使用'.' 2.数组 3. 超全局变量 就是任意地方都可以使用都变量 $GLOBALS: 全局变量用于在 PH
阅读全文
