PHP-知识扩展
文章平均质量分 72
PHP-知识扩展
echojson
雄鹰在鸡窝里长大,就会失去飞翔的本领,野狼在羊群里成长,也会爱上羊而丧失狼性。人生的奥妙就在于与人相处。生活的美好则在于送人玫瑰。和聪明的人在一起,你才会更加睿智。和优秀的人在一起,你才会出类拔萃。所以,你是谁并不重要,重要的是,你和谁在一起。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
php5对象的浅复制与深复制
本文实例讲述了php5对象复制、clone、浅复制与深复制。分享给大家供大家参考,具体如下:对象复制的由来为什么对象会有“复制”这个概念,这与PHP5中对象的传值方式是密切相关的,让我们看看下面这段简单的代码PHP代码/*** 电视机类*/class Television{ /** 屏幕高度 */ protected $_screenLength = 300; /** 屏幕宽度 */ protected $_screenHight = 200; /原创 2021-04-09 15:08:00 · 308 阅读 · 0 评论 -
理解MySQL insert into ... select 的锁情况
摘要: 一直以为"insert into tb select * from tbx" 这样的导入操作是会把tbx表给锁住的,在锁期间是不允许任何操作(保证一致性)。看完这篇写的之后,发现tbx表是会被锁住,但这个锁有2种情况,现在逐一进行分析:分析环境:root@127.0.0.1 : test 02:10:40>select @@global.tx_isolation,@@session.tx_isolation;+-----------------------+-----...原创 2020-07-15 17:19:04 · 457 阅读 · 0 评论 -
IoC基础
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器原创 2020-06-30 11:42:06 · 213 阅读 · 0 评论 -
php缓冲机制及嵌套级别 ob_get_level
ob_get_level(void):int返回嵌套的输出缓冲处理程序的级别;或者是,如果输出缓冲区不起作用,返回零。php.ini中配置缓冲在php的配置文件php.ini中有以下这项配置 output_buffering ,php.ini默认设置了output_buffering = 4096,php已经设置了一个缓冲区。如果php.ini 中打开了此项: echo,print 后的输出顺序就是-> php output_buffring -> server buffering原创 2020-05-28 14:07:22 · 1096 阅读 · 1 评论 -
探究PHP中new self()和new static()的区别
1.new static()是在PHP5.3版本中引入的新特性。2.无论是new static()还是new self(),都是new了一个新的对象。3.这两个方法new出来的对象有什么区别呢,说白了就是new出来的到底是同一个类实例还是不同的类实例呢?为了探究上面的问题,我们先上一段简单的代码:1.new static()是在PHP5.3版本中引入的新特性。2.无论是new static()还是new self(),都是new了一个新的对象。3.这两个方法new出来的对象有什么区别呢,说白原创 2020-05-14 16:36:28 · 231 阅读 · 0 评论 -
Closure::bind && Closure::bindTo
Closure::bindClosure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。其实后半句表述很不清楚。 我的理解: 把一个闭包转换为某个类的方法(只是这个方法不需要通过对象调用), 这样闭包中的$this、static、self就转换成了对应的对象或类。创建并返回一个 匿名函数, 它与当前对象的函数体相同、绑定了同样变量,但可以绑定不同的对象,也可以绑定新的类作用域。从我个人理解,和js里面的call函数有点类似。可以改变闭包对象指定的作用域。简单说,就是把闭包当成原创 2020-05-14 10:18:23 · 298 阅读 · 0 评论 -
php 内置的 web 服务器 php -s
从 PHP 5.4.0 起,PHP内置了Web服务器,这对于认为需要Apache或Nginx才能预览PHP应用的开发者来说又是一个隐藏功能。这个内置的Web服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。Laravel Valet 起初就是使用这个内置的服务器,但是在1.1.0版本后将其替换为Caddy(查看相关新闻)。1、启动这个内置的Web服务器很容易启动,打开终端(Windows下对应是cmd命令行),进入项目根目录,执行如下命令即可:php -S localhost:8000 #原创 2020-05-14 10:13:31 · 579 阅读 · 0 评论 -
理解回调函数
回调函数Callback(即call then back)被主函数调用后执行其他操作,然后再返回主函数的函数,称之这个被调用的函数为主函数的回调函数。通俗的来说,回调函数是一个我们定义的函数,但是不是我们直接来调用,而是通过另一个函数来调用,这个函数通过接收回调函数的名字和参数来实现对它的调用。就是把函数作为参数传入进另一个函数中使用,被作为参数的函数称之为调用者的回调函数;PHP的回调函数其实和C、Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数原创 2020-05-14 10:07:37 · 158 阅读 · 0 评论 -
var_export 与 var_dump的不同
var_export & var_dump 不同var_dump – 输出var_export – 输出或返回一个变量的字符串表示此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。比较比较:var_dump 直接输出,如果 var_export,不设置第2个参数为true的话,也是直接输出,输出和var_dump差不多;但是如果 var_export 第2个参数设置为true的话,就不会输出了,而是返回原创 2020-05-14 10:06:38 · 324 阅读 · 0 评论 -
Nginx下出现Access denied (403) see security.limit_extensions错误的解决方法
采用nginx+php作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。本文的主要内容为如何在nginx server中正确配置php调用方法,以及配置的基本原理。知道了配置和基本原理后,我们也就知道了他们之间是怎么通信的。一、普及N...原创 2020-05-09 17:42:33 · 856 阅读 · 0 评论 -
curl请求,服务器接受curl发送的数据
模拟一个服务器(Client)向另外一个服务器(Serve)发送数据,另外一个服务器接受数据1. 本地起一个PHP服务(服务器一)php -S 192.168.0.102:8888 C:\Users\laozhongyi\Desktop\phpService.php或者写一个bat ,名为 phpService.bat:: php 启动一个web服务:: 192.168.0.102 ...原创 2020-05-08 10:32:43 · 1519 阅读 · 0 评论 -
理解:同步、异步、阻塞与非阻塞
四、同步、异步、阻塞与非阻塞4.1、引言近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写...原创 2020-05-08 10:32:10 · 249 阅读 · 0 评论 -
swoole
一、前言1.1、什么是 swooleswoole是基于C开发的一个php扩展,类似你熟悉的Mysqli、cURL等等。swoole的作用,其实更多的是解决php在某些方面的缺陷(当然,php是最好的语言),比如即时通讯、异步任务、消息队列等等。Swoole是PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池...原创 2020-05-08 10:28:56 · 899 阅读 · 0 评论 -
PHP 底层分析
一、PHP 的编译特点注:脚本一运行结束,opcode 将会被清除;但是第三方工具:apc,xcache 等加速器可以保存 opcode二、PHP 变量的底层实现由 zend 虚拟机实现,zend 虚拟机是用 C 语言开发的疑问:PHP 中有8种数据类型,但为什么 zval->value 联合体中,只有5种?答:① NULL,直接 zval->type = ...原创 2020-05-08 10:20:54 · 214 阅读 · 0 评论 -
PHP面向对象_对象克隆clone和魔术方法__clone()
1.对象克隆 clone PHP4面向对象功能一个很大的缺点,是将对象视为另一种数据类型,这使得很多常见的OOP方法无法使用,如设计模式。这些方法依赖于将对象作为引用传递给其他类方法,而不是作为值传递,而按值传递却是PHP的默认做法。幸好,PHP5解决了这个问题,现在所有对象在默认情况下都被视为引用。但是,由于所有对象都被视为引用而不是值,所以现在复制对象更为困难。如果尝试复制一个引用的对象...原创 2018-08-21 18:41:27 · 337 阅读 · 0 评论 -
php的错误级别
error_reporting()用于设置 PHP 的报错级别并返回当前级别。(PHP 4, PHP 5)函数能够在运行时设置 error_reporting 指令。PHP 有诸多错误级别,使用该函数可以设置在脚本运行时的级别。如果没有设置可选参数 level, error_reporting() 仅会返回当前的错误报告级别。 参数level 新的 error_r...原创 2018-08-31 17:36:33 · 1090 阅读 · 0 评论 -
PHP错误与异常处理
没有特殊说明:本例 PHP Version < 7说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程序,内容如下,然后命令行执行:php test.php<?php $num = 0; try { echo 1/$num; } catch (Excepti...原创 2018-08-31 17:33:19 · 714 阅读 · 0 评论 -
PHP中Trait详解及其应用
从PHP的5.4.0版本开始,PHP提供了一种全新的代码复用的概念,那就是Trait。Trait其字面意思是”特性”、”特点”,我们可以理解为,使用Trait关键字,可以为PHP中的类添加新的特性。熟悉面向对象的都知道,软件开发中常用的代码复用有继承和多态两种方式。在PHP中,只能实现单继承。而Trait则避免了这点。下面通过简单的额例子来进行对比说明。1. 继承 VS 多态 VS T...原创 2018-05-05 17:46:47 · 1610 阅读 · 0 评论 -
Countable接口
继承Countable接口的可被用于count() 函数。class CountMe{ protected $_myCount = 3; public function count() { return $this->_myCount; } } $countable = new CountMe(); echo count($countable);//返回...原创 2018-04-27 22:00:36 · 964 阅读 · 0 评论 -
php实现多进程、多线程
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。 僵尸进程危害:如原创 2018-04-13 15:33:00 · 690 阅读 · 0 评论 -
设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式) 被腾讯笔试打击到了,腾讯笔试的设计模式题目都没有做对过,所以我要学习下设计模式,就买了入门的《大话设计模式》这本书。我从昨天下午开始看这本书,今天中午看完,发现这本书浅显易懂,作为入门读物还是不错的。 好脑子不如烂笔头,我还是将所学的东西记载下来,供我以后来看吧。简单原创 2018-03-27 19:16:20 · 232 阅读 · 0 评论 -
进程和线程
进程和线程有什么区别从概念上:进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位。线程:一个进程内的基本调度单位。线程的划分尺度小于进程,一个进程包含一个或者更多的线程。从执行过程中来看:进程:拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。线程:每一个独立的线程,都有一个程序运行的入口、顺序执行序列、和程序的出口。但是线程不能够独立的执行,必须依存在应用程序中,...原创 2018-04-13 14:53:58 · 176 阅读 · 0 评论 -
mysql 数据表读锁机制详解
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表...原创 2018-03-23 19:54:19 · 227 阅读 · 0 评论 -
php闭包(匿名函数)中的use用法
php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use意思是连接闭包和外界变量。匿名函数中的use,其作用就是从父作用域继承变量。下例是最常见的用法,如果不使用use,匿名函数中将找不到变量$msg$msg = [1,2,3];$func = function()use($msg){ print_r($m...原创 2018-06-09 15:10:26 · 13695 阅读 · 2 评论 -
ArrayObject的使用
ArrayObject是将数组转换为数组对象。代码示例<?php //打印全部数组元素$array =array('1'=>'one', '2'=>'two', '3'=>'three');$arrayobject = new ArrayObject($array);//构造一个ArrayObject对象for($iterator= $arrayobj...原创 2018-06-09 15:31:25 · 5982 阅读 · 0 评论 -
php中stdClass
stdClass是一个内置类,它没有成员变量,也没有成员方法的一个类,new一个stdClass就是实例化了一个『空』对象,它本身没什么意义,但是用stdClass定义有什么好处呢?很多地方使用stdClass来定义一个对象(而通常是用数组的方式),然后使用get_object_vars来把定义的对象『转换』成数组.$tanteng = new stdClass();$tanteng...原创 2018-06-09 15:55:27 · 1010 阅读 · 0 评论 -
iterable 迭代器
iterable 迭代器TraversableTraversable用于检测一个类是否可以使用 foreach 进行遍历,这是一个无法在 PHP 脚本中实现的内部引擎接口,实际编程中我们使用Iterator接口或者IteratorAggregate接口来实现遍历。Traversable 重要的一个用处就是判断一个类是否可以遍历,下面是官方例子:if( !is_array( ...原创 2018-06-09 16:48:45 · 565 阅读 · 0 评论 -
php的引用(就是在变量或者函数、对象等前面加上&符号)
在PHP 中引用的意思是:不同的名字访问同一个变量内容。与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存放的地址。1.变量的引用PHP 的引用允许你用两个变量来指向同一个内容 $a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC原创 2014-03-14 10:55:02 · 598 阅读 · 0 评论 -
ArrayAccess(数组式访问)接口
提供像访问数组一样访问对象的能力的接口。ArrayAccess {/* 方法 */abstract public boolean offsetExists ( mixed $offset )abstract public mixed offsetGet ( mixed $offset )abstract public void offsetSet ( mixed $offset , m...原创 2018-06-09 18:59:27 · 561 阅读 · 0 评论 -
PHP闭包 function() use(){}作用
php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use意思是连接闭包和外界变量。$func =function() use ($param) { }闭包的几个作用:减少foreach的循环的代码// 一个基本的购物车,包括一些已经添加的商品和每种商品的数量。 // 其中有一个方法用来计算购物车中所...原创 2018-06-09 19:38:16 · 3385 阅读 · 1 评论 -
IoC 控制反转
IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:我们再来看看,控制反转(IOC)到底为...原创 2018-07-26 17:56:22 · 2248 阅读 · 0 评论 -
Php面向对象中static静态属性和静态方法的调用
Php面向对象中static静态属性和静态方法的调用结论:(1)静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名",不能通过 “object->属性 调用”;(2)静态方法不需要实例化即可调用。同上(3)静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;(4)非静态方法可以调用静态属性和静态方法,前提是使用self关...原创 2018-07-30 15:41:28 · 1351 阅读 · 0 评论 -
is_callable()与method_exists()函数
我们经常能够看到以下这种用法,它用来检查一个对象里的方法是否存在<?phpif (method_exists($object, 'SomeMethod')) { $object->SomeMethod($this, TRUE); }?> 不管方法是否可见(private,protected),method_exists 否会返回 TRUE如果...原创 2018-05-02 21:14:39 · 889 阅读 · 0 评论
分享