php
上官二狗
秃头工程师
展开
-
PHP内置变量如$_SERVER['DOCUMENT_ROOT'] 和 ../ 的用法
因为最近正好学习了PHP内置变量如$_SERVER['DOCUMENT_ROOT'] 和 ../ 的用法 所以在这里整理一下然后发送给大家1、$_SERVER['DOCUMENT_ROOT'] // 根目录的路径2、$_SERVER['HTTP_HOST'] // 域名,比如:localhost3、$_SERVER['PHP_SELF'] // 从根目原创 2017-05-25 16:01:29 · 11455 阅读 · 0 评论 -
php项目 如何进行 性能优化 一 ( php使用上的性能优化)
在开发的过程中,我们经常会遇到php项目如何进行优化的问题,由简单到容易我们往往可以从一下三个方向来考虑php 语言 使用上的性能优化php 周边问题的性能优化php 语言本身的性能优化php语言使用上的性能优化 大家都知道代码质量是有高低之分的,怎么能提高我们的代码质量呢,其实很简单少些代码,多尝试使用php本身的功能,例如内置函数,常量 上图是php代码被执...原创 2018-04-01 17:53:34 · 1353 阅读 · 0 评论 -
php 正则表达式 总结
正则表达式的作用 分割、查找、匹配、替换字符串分割符 正斜线(/)hash符号(#)取反符号(~) 通用原子 \d 10进制 0到9\D 取反 除了 十进制的 0到9\w 数字字母下划线\W 除了数字字母下划线\s 空白符\S 除了空白符元字符 . 匹配除换行符(\n、\r)之外的任何单个字符* 匹配前面的子...原创 2018-04-01 23:49:42 · 166 阅读 · 0 评论 -
php 单例模式的实现
<?phpclass Single{ private static $_instance = null; private function __construct() { } private function __clone() { // TODO: Implement __clone() method. }...原创 2018-04-14 22:27:07 · 208 阅读 · 0 评论 -
php 生成二叉树 前序、中序、后序、层序遍历
<?phpClass BTNode // 节点类{ public $data; public $lChild; public $rChild; public function __construct($data = null) { $this->data = $data;...原创 2018-03-27 12:02:24 · 607 阅读 · 1 评论 -
php 函数普通转值与引用传值的区别
引用传递可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值以下内容可以通过引用传递 变量,例如 foo($a)New 语句,例如 foo(new foobar())从函数中返回的引用普通传值函数不能修改变量的值<?phpfunction foo(&$var){ $var++;}function foo1($var){ ...原创 2018-03-27 15:42:35 · 323 阅读 · 0 评论 -
linux 面试常用命令总结
awkawk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势 xarg...原创 2018-03-27 16:38:49 · 358 阅读 · 0 评论 -
php SPL库 SplQueue 队列的使用
php在SPL库中为我们封装了很多常见的数据结构 今天就来谈一下php的SPL库中SplQueue队列的使用具体使用方法如下<?php$queue = new SplQueue(); //初始化队列$queue->enqueue(1); //进队列$queue->enqueue(2);$queue->enqueue(3);$queue->enqueue(4);$queue-原创 2018-03-27 23:52:29 · 1686 阅读 · 0 评论 -
Cannot find build files at '/usr/local/src/lib/php/build' 解决
我们使用phpize 为php添加扩展时可能会出现下面的报错 [root@izuf66bc6zb0cuc0f7x9krzswoole]#/usr/local/src/php/bin/phpizeCannot find build files at '/usr/local/src/lib/php/build'. Please check your PHP installation. 出现这个报错的原创 2018-04-05 10:37:33 · 3226 阅读 · 0 评论 -
yum 快速搭建 lnmp 开发环境
linux是使用的云主机 我选择的是centos7.4PHP 7.2.4 下载yum -y remove php* 先卸载之前安装的更改yum源 ,支持 php7.xrpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.web...原创 2018-05-03 23:26:08 · 255 阅读 · 0 评论 -
php 实现单链表的增删改查
&lt;?phpclass node{ public $value; public $next; public function __construct($value = null) { $this-&gt;value = $value; $this-&gt;next = null; }}class single...原创 2018-06-12 18:55:54 · 960 阅读 · 0 评论 -
phpstrom xdebug 断点调试教程
之前在开发中经常使用var_dump 和 die 进行调式所以就研究了一下 phpstrom 的断点调式使用前提条件 开启 php Xdebug 扩展在 php.ini 加上如下配置 (为了演示方便开发环境使用的是 wamp) [xdebug]zend_extension="c:/wamp64/bin/php/php7.2.4/zend_ext/php_xdebug-2...原创 2018-06-06 23:00:48 · 470 阅读 · 0 评论 -
mysql 验证出 bug 的经历
本人之前做了一个简单的会议预约系统逻辑非常的简单建立用户占用时间表 used_time和会议预约表 meeting_books规定会议时间以半小时为单位,最长不得超过两个小时用户每预定一个时间我就会向占用时间表里插入时间比如预定 08:00~09:00 我就会向占用时间表插入 08:00 和08:3008:00 和08:30 代表的是时间段的含义,是08:00~08:30和 08:...原创 2018-08-29 11:43:49 · 363 阅读 · 0 评论 -
php 单点登录中 AES加密
单点登录在中的用户密码采用AES 128加密,加密模式为CBC填充模式为:PKCS5Padding(当待加密内容的不足分组长度时以最后一下字节填充)密码为16个字节,长于16个字节取前16个字节,不足时补充空字符向量IV同密码,固定为16个字节,加密后输出为全16进制字符,字符集为UTF-8明文:abc ,密码:347c6161e79f4b6a8873202dd5fe7e...原创 2018-09-10 17:56:11 · 512 阅读 · 1 评论 -
详解 php 垃圾回收机制
php的垃圾回收机制 总结可以简单总结为 引用计数 写时复制 COW机制引用计数基本知识 官网的解答如下每个php变量存在一个叫”zval”的变量容器中一个zval变量容器,除了包含变量的类型和值 ,还包括两个字节的额外信息 is_ref 和 refcount is_ref 是个bool值,用来标识这个变量是否是属于引用集合(reference set)。通过这个字节,ph...原创 2018-03-26 19:55:56 · 175 阅读 · 0 评论 -
2018 新浪校招 PHP实习生 电话面试总结
今天接受了新浪的电话面试,想了想虽然面的不好还是和大家分享一下自己的面试经验吧,毕竟是自己第一次面试如下图,先和hr约好的时间是20号下午3点(hr给我打电话的时间是20号的中午11点),到了3点结果通知面试改到了21号的下午14点。到了21号的14点,面试官也没有打电话过来,我基本已经快放弃了,到了晚上6点我正在外面吃饭的时候,面试官的电话终于到了 这时我心里是非常的慌的...原创 2018-03-21 20:06:40 · 4613 阅读 · 1 评论 -
windows平台下 如何使用 phpstrom 现代化 开发swoole
众所周知 swoole 仅支持 Linux,FreeBSD,MacOS,3类操作系统而我们很多人平时却习惯在windows平台下进行开发,毕竟windows平台下有很多强大的IDE 所以这一节我们就讲一下如何在windows平台下现代化的开发swoole我们将使用到的工具 系统 Windows10IDE phpstrom 远程工具 Xshell版本控制工具 Git...原创 2018-04-08 12:35:26 · 2190 阅读 · 0 评论 -
php 命名空间详解
众所周知 命名空间 是php5.3 带来的新特性 可以帮我们解决在工程量大时 类命名重复的问题 下面 我就来分享一下 我对命名空间的理解首先我们创建三个php文件在同一个文件夹 分别为 index.php test1.php test2.phptest1.php 的内容如下<?phpclass test{ function say() { echo '原创 2017-06-04 17:56:07 · 538 阅读 · 0 评论 -
php 全局类介绍
上一篇博客 简单的 介绍了一下 命名空间的用法 今天就来给大家 简单的 介绍一下 php的全局类全局类 名字好像很高大上 其实理解起来也非常的容易 全局类 其实就是 没有加命名空间的类就像下面的 hello类<?phpclass hello{ function say() { echo "hello world !"; }}调用全局类也非常容原创 2017-06-04 20:50:33 · 766 阅读 · 0 评论 -
新版 PHP date函数 设置时间与电脑系统时间相差8小时的 解决方法
因为新版PHP所默认的时间是格林尼治时间格林尼治和我们的北京 不在一个时区 所以 往往会和我们的系统时间相差8个小时想解决这个问题也十分的容易用 date_default_timezone_set 函数设置时区即可具体代码如下<?phpdate_default_timezone_set("PRC");$date = date('Y-m-d H:i:s');echo $date;原创 2017-05-31 21:56:15 · 858 阅读 · 1 评论 -
php require 和 include 的区别
require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。...原创 2017-06-17 23:13:56 · 791 阅读 · 0 评论 -
yii 2 框架 save insert update 等操作的细节 详细理解
yii2 中 save 方法 应该说是新增和修改数据库操作中 最常用的方法了但是大多数新手 往往弄不清楚 save方法 和 insert方法 update方法 的区别 下面我就详细的给大家区分一下他们的区别相同点 save insert update 方法在执行前 如果有验证都会被验证一遍 如果验证失败 会返回 false 数据不会更新或插入到数据库中不同点 save 方法原创 2017-05-31 19:14:20 · 8809 阅读 · 1 评论 -
php xdebug_debug_zval 函数的使用
众所周知php的变量都是通过zend引擎来处理的 而zval结构体则是管理我们变量的一个容器而 xdebug_debug_zval 函数则是我们调试 zval结构体的一个好工具 <?php//php zval变量容器$a = range(0, 3);xdebug_debug_zval('a');上面的代码 在浏览器中 会输出 以下结果a: (refcount=1, is_ref=0),ar原创 2017-11-13 14:06:47 · 1656 阅读 · 1 评论 -
php 定义和引用变量 (一)
众所周知 php 引用变量 是php初学者 入门的一个难点之一下面我们将来详细的分析一下php引用变量的考点首先php变量在赋值的时候是遵循COW原则的 即 copy on write所谓的cow原则即变量只有在被重新赋值的时候才会开辟内存空间 也就是说 即使我们不使用引用 一个变量被赋值后 只要我们不改变变量的值 也与使用引用一样 代码如下<?php//定义变量//变量a 会开辟原创 2017-11-13 14:32:53 · 449 阅读 · 0 评论 -
php quicksort 快速排序
<?phpfunction quickSort($arr){ //先判断是否需要继续进行 $length = count($arr); if ($length <= 1) { return $arr; } //选择第一个元素作为基准 $base_num = $arr[0]; //遍历除了标尺外的所有元...原创 2018-03-09 10:22:15 · 233 阅读 · 0 评论 -
Centos7 安装mysql与php
官网下载安装mysql-server依次使用下面三个命令安装wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum install mysql-community-server安装过程如下图 安装成功原创 2018-03-16 00:57:51 · 2882 阅读 · 0 评论 -
PHP 标准输入输出流 A题必备
最近一直在准备php的实习生面试,所以也需要A一些笔试题,在赛码网,牛客网上面看见,A题有php的选项了,特别高兴,毕竟之前一直都是使用C++来A题但是php我们经常用来做web,命令行运行其实挺少见的,所以自己对php的标准输入与输出流也不是非常的清楚,于是我就查阅了一下,发现讲如何用php来A题的帖子非常少,所以就打算把自己学习的经验分享给大家STDIN 是php 标准输入流 我们所以 fge原创 2018-03-22 15:09:03 · 695 阅读 · 1 评论 -
访问 laravel 出现 Parse error: syntax error, unexpected '?'
报错具体如下图 其实这个报错的原因非常简单,就是 laravel 不支持你当前的 php 版本 查看你的 laravel 版本 如果是5.5 php 版本一定要是 7 以上原创 2018-03-13 22:48:16 · 22547 阅读 · 5 评论 -
php 基础算法之 二分查找
之前学习数据结构使用的是C++,二分查找也使用的是C++完成的,这几天练习php的基础算法,所以也就使用php来完成了二分查找具体代码如下<?phpfunction BinSearch($array, $value){ $low = 0; $high = count($array); while ($low <= $high) { ...原创 2018-03-23 19:22:26 · 166 阅读 · 0 评论 -
php interface 对象接口
interface 对象接口使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的接口中定义的所有方法都必须是公有,这是接口的特性 从上面的三个定义中我们可以把接口简单的理解成,接口是类的模板,接口里的方法都是公共的空方法什么叫类的模板呢,其实我们可以原创 2018-03-20 22:38:23 · 319 阅读 · 0 评论 -
Laravel 使用 RabbitMQ 消息队列消费邮件
Laravel 使用 RabbitMQ 消息队列消费邮件准备工作 (这里默认你的 RabbitMQ 和 Laravel 已经安装完毕)安装 php-amqplib 在项目目录下运行composer require php-amqplib/php-amqplib封装 RabbitMQ 的基本操作&lt;?phpnamespace App\Components;u...原创 2018-09-19 21:13:08 · 2326 阅读 · 2 评论