PHP
文章平均质量分 67
开软古剑楠
重新开始
展开
-
ThinkPHP数据表大小写问题:连接oracle数据库出错
一个老项目一直在运行,前几天手痒,维护时更新了thinkphp的ORM组件。当时运行一切正常,今天客户反馈不能自动同步主数据库了。ThinkPHP数据表大小写问题:连接oracle数据库出错。General error: 942 OCIStmtExecute: ORA-00942:这个错误一般是数据库表名错误。原创 2022-10-19 00:40:51 · 205 阅读 · 0 评论 -
PHP生成器与函数引用的方法
我们知道一般我们是在生成器内部生产需要的数据的,然后通过yield返回迭代出的值。如果我们需要在生成器外部影响或是生产数据,然后再通过yield返回呢。这时候我们就需要PHP的引用功能。生成器外部修改生成器中的变量:我们已经很清楚,如果想引用函数,我们必须在声明时和使用时加上引用符号:&。所以我们把生成器函数加上引用符号&。然后再foreach里面加上引用符号&。这样就解决了我们本篇文章所想要的解决办法。原创 2019-10-20 13:43:29 · 490 阅读 · 0 评论 -
PHP生成器
生成器总览【转载自PHP官网】 (PHP 5 >= 5.5.0, PHP 7) 生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现Iterator接口的方式,性能开销和复杂性大大降低。 生成器允许你在foreach代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会使你的内存达到上限,或者会占据可观的处理时间。相反,你可以写一个生成器函数,就像一个普...转载 2019-10-18 08:11:03 · 91 阅读 · 0 评论 -
PHP-自动加载原理分析与理解
本文主要理解什么是自动加载,为什么需要自动加载,自动加载的前世今生。 PHP-自动加载【自我概念理解】 PHP的自动加载,常见于各种框架的自动加载功能,PHP规范中的PSR0和PSR4原则,Composer的自动加载功能等等,这些都为我们的开发提供了很大的方便。 在PHP面向对象(OO)编程中,为了方便管理,我们都会把一个类写在一个单独的文件中。项目开发中我们难免要加载各种各样的类,如果我们...原创 2019-10-17 08:50:30 · 261 阅读 · 0 评论 -
PHP Iterator(迭代器)接口
iterator 【百度词条】:迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种...原创 2019-10-16 09:49:32 · 170 阅读 · 0 评论 -
理解PHP延迟静态绑定
理解PHP延迟静态绑定: 简单理解PHP延迟静态绑定: static::中的static其实是运行时所在类的别名,并不是定义类时所在的那个类名。这个东西可以实现在父类中能够调用子类的方法和属性。所谓“延迟“等于“跳过“父类进入运行时类!也就是说,是通过计算得到最后所属的运行时山下文环境。 “延迟“不知是翻译的问题还是核心开发者使用了比较隐晦的词!延迟静态绑定只是为了解决PHP类继承中父类无法...原创 2019-10-15 10:29:28 · 165 阅读 · 0 评论 -
PHP:构造函数和析构函数
OOP编程都有一种称为构造函数的特殊方法。当创建一个对象时,对象的构造函数将被调用。通常,这将执行一些有用的初始化任务。这一切都是自动化调用的。创建对象时触发了这一方法。 与构造函数相对应的是析构函数。析构函数的职能是:销毁一个类对象之前被调用。这一特性将帮助系统回收资源,处理一些即将关闭而必须采取的行动。正如构造函数一样,这一切都是自动执行的。exit()函数可以触发析构函数。而析构函数如果调...原创 2019-10-14 09:13:22 · 228 阅读 · 0 评论 -
PHP declare控制指令
PHP declare 之 strict_types=1: PHP中申明declare(strict_types=1)的作用: strict_types=1 及开启严格模式.默认是弱类型校验. 注意:declare 是会校验这个文件下所有使用的的函数,不管他是否是在declare指令文件中申明的! 我们知道php是一种弱类型的编程语言,但是php7已经有所改变,可以支持代码开启强类型模式...原创 2019-10-12 15:24:06 · 190 阅读 · 0 评论