首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP 之道(PHP: The Right Way):书写更好 PHP 代码

网上有很多过时 PHP 相关信息,传播着错误 PHP 实践和糟糕代码,让新手学习 PHP 时候误入歧途,这种情况必须改变,所有一些 PHP 爱好者就创立了一个叫做 PHP 之道(PHP: The...Right Way)网站,搜集 PHP 最佳实践,编码规范和网上权威学习指南,给 PHP 学习者提供一个易于阅读,并且快速查找入口。...PHP 之道网站包括 PHP 安装设置,基础,安全,缓存等等主题,对于无论初学者还是有一定基础 PHPer 来说,都是不错学习参考资料。...我们知道 WordPress 也是基于 PHP 开源博客程序,所以对于 WordPress 主题和插件作者来说,学习下这份文档也是很有必要,因为撰写更好且更容易让人理解代码会让你主题和插件更加受欢迎...简单说 PHP 之道是一个 PHP 开发人员必须查看指南,并且已经有同学吧这个文档翻译成中文。最后你可以帮助进一步改善这个文档(host 在 GitHub)。

59110
您找到你想要的搜索结果了吗?
是的
没有找到

php:output和php:stdout区别

PHP官方文献中找答案,对输入流php://stdin和php://input解释分别如下(输出流解释过于简略): php://stdinphp://stdin, php://stdout and...文档并未直接阐述两者区别,仔细对比可得出以下信息:1. 均是只读流;2. php://stdin是PHP进程标准输入,php://input用来读取请求正文原始数据。...顺着php://stdin进程输入提示,联想PHP进程执行过程,再结合SAPI差异,可以得到两者主要区别:php://stdin是PHP进程输入流,执行生命周期内均可能有数据流入(例如CLI下交互式输入...);php://input是PHP执行时外部输入流,一般数据只能读一次(具体看SAPI实现)。...同理可得到php://stdout和php://output区别:php://stdout是PHP进程标准输出流,php://output是返回结果数据流。

1.6K10

PHP中那些你不知道坑,PHP坑,PHP漏洞

知乎上任何关于PHP的话题,最后都会变成引战贴,树大招风就是这样。今天长话短说,聊点干货,助你在知乎PHP话题上不落下风。...函数返回参数之坑 通常函数返回数据类型都是固定,比如Int,String,Array等。但是PHP不一样,PHP中很多函数返回数据类型并不固定。...我遇到时也是一脸懵,好在这个问题可以通过修改配置文件修复,在PHP7.2之后默认关闭了json_encode函数保留更多精度开关。只有PHP7.1版本有这个问题。...数组类型太少之坑 PHP虽然有数组概念,但全都是HashTable。你可能想创建一个int型数组,但是PHP不支持。你想创建一个sting类型数组,PHP也不支持。...说速度不快,也有道理,因为再怎么优化都有比你快编程语言。最后『PHP是世界上最好语言』

93140

PHPstdClass

概述 以下是百度百科对php stdClass描述: stdClass在PHP5才开始被流行。而stdClass也是zend一个保留类。...stdClass类是PHP一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL.凡是用new stdClass()变量,都不可能会出现$a->test()这种方式使用。...PHP5对象独特性,对象在任何地方被调用,都是引用地址型,所以相对消耗资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。...但是,同时也要承担对应风险,复制数组方法固然浪费了内存,但是无论方法内对数组如何操作,都不会反应到外边数组中。...在之后方法b中再次获取此对象,如果你使用是数组,那么尴尬了,调用方法S返回数组,对其修改只是对局部变量数组进行了修改,并没有达到想要效果。

1.1K10

PHP 数组

数组就是一组数据集合,把一系列数据组织起来。如果变量是存储单个值容器,那么数组就是存储多个值容器。数组每个实体包含一个键和一个值。 PHP数组概念和python元组和字典类似。...PHP索引数组对应python元组,PHP关联数组对应python字典。...本文包含 数组声明 数组输出 多维数组 遍历数组 字符串和数组转换 统计数组中元素个数 查询数组中指定元素 获取数组中最后一个元素 向数组中添加元素 删除数组中重复元素 1....统计数组中元素个数:count()函数统计数组中元素个数。...查询数组中指定元素:array_search()函数用于在数组中搜索给定值,找到后返回键值,否则返回false,在php4.2.0之前没找到会返回null。

6.3K51

php基础】php几种排序算法比较

这里列出了几种PHP排序算法时间比较结果,,希望对大家有所帮助 /* * php 四种排序算法时间与内置sort排序比较 * 3000个元素,四种算法排序所用时间比较 * 冒泡排序...$flag) return $arr; } } /* * @param 选择排序法 * 每一次从待排序数据元素中选出最小(或最大)一个元素,存放在序列起始位置,直到全部待排序数据元素排完...,按其关键码值大小插入前面已经排序文件中适当位置上,直到全部插入完为止。...* 算法适用于少量数据排序,时间复杂度为O(n^2)。是稳定排序方法。...* 这样排序方法经常用于多个有序数据文件归并成一个有序数据文件。

1K130

php优点总结 php有哪些优点

php有哪些优点? PHP优点: 1.入门快,有其它语言基础程序员二周左右时间就可以入门,一个月左右时间基本上就可以开发简单项目了。...2.开发成本低,PHP最经典组合就是:Linux + Apache + MySQL + PHP。非常适合开发中小型web应用,因为上手容易,所以开发速度比较快。...PHP开发中主要是PHP自身配置文件及Web服务器配置(如Apache或Nginx或Lighttpd等),相对于JAVA来说还是简单一些,而且新修改了文件以后不需要重新启动Web即可以立即生效。...PHP 5已经有成熟面向对象体系,能够适应基本面向对象要求。适合开发大型项目。 7. 有成熟社区来支持PHP开发。 8....目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们开发语言,所以大型门户都能够选用它,我想足够能够你使用了。 9.

4.8K30

深入理解PHP引用(References in PHP

深入理解PHP引用(References in PHP) huangguisu 为了深入理解PHP引用,找到一篇老外东西: http://derickrethans.nl/talks/phparch-php-variables-article...基础知识 php在zend里面存储变量,PHP中每个变量都有对应 zval, Zval结构体定义在Zend/zend.h里面,其结构: typedef struct _zval_struct zval...以后引入垃圾收集机制) PHP’s handling of variables can be non-obvious, at times.Have you ever wondered what...PHP是弱语言,其变量处理过程是不可见。你是否曾经很想知道在变量复制时候,PHP引擎做了什么?你是否曾经很想知道一个函数是如何以引用方式返回一个变量?...这个由于引用赋值后需要重新分配一份内存给引用变量。

4.3K20

include用法PHP,php之include使用

大家好,又见面了,我是你们朋友全栈君。 服务器端包含 (SSI) 用于创建可在多个页面重复使用函数、页眉、页脚或元素。...PHP include 和 require 语句 在 PHP 中,您能够在服务器执行 PHP 文件之前把该文件插入另一个 PHP 文件中。...include 和 require 语句用于在执行流中向其他文件插入有用代码。...否则,在框架、CMS 或者复杂 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序安全性和完整性,在某个关键文件意外丢失情况下。...语法include ‘filename’; 或者require ‘filename’; PHP include 和 require 语句 基础实例 例1:假设我们有一个在所有页面中使用标准菜单文件:

2.2K10

PHP系列 | PHPstdClass是什么?

简介 stdClass 是 PHP空类,用于将其他类型转换为对象。它类似于 Java 或 Python 对象。...如果该值为 null,则新实例为空。 array 转换成 object 将使键名成为属性名并具有相对应值。注意:在这个例子里, 使用 PHP 7.2.0 之前版本,数字键只能通过迭代访问。...stdClass() 定义 stdClass 是PHP一个基类,几乎所有的类都继承这个类,任何时候都可以被new,可以让一个变量成为一个对象(object)。...所有使用 new stdClass 变量,都不能使用方法,即不可能出现 $a->text() 情况 stdClass 在 php5 版本开始流行起来,低于php5版本,尽量或不使用此方法(好像这一条是多余...中对象基类 这里需要注意是,尽管是泛型类,stdClass 并不是 PHP 中对象基类,我们可以使用 instanceof 关键字来证明这一点。

9410

php介绍及Php有什么优势

知道 PHP 是什么、如何工作或者为什么如此热门,但现在该是进一步了解 PHP 时候了。因此本文简要介绍了关于 PHP 基础基本概念。php介绍及Php有什么优势?...PHP 是一种HTML 内嵌式语言,PHP与微软ASP颇有几分相似,都是一种在服务器端执行嵌入HTML文档脚本语言,语言风格有类似于C语言,现在被很多网站编程人员广泛运用。...PHP 独特语法混合了C、Java、Perl 以及PHP 自创新语法。它可以比CGI 或者Perl 更快速执行动态网页。...,成分利用了服务器性能;PHP执行引擎还会将用户经常访问PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要诚信编译程序了,只要直接执行内存中代码就可以了,这也是PHP高效率体现之一。...PHP具有非常强大功能,所有的CGI或者JavaScript功能PHP都能实现,而且支持几乎所有流行数据库以及操作系统。php介绍及Php有什么优势?

1.1K10

phpredis.so扩展安装【PHP

解压:unzip develop.zip 进入目录:cd phpredis-develop 第二种方式: 找到PHP安装目录 cd /usr/local/php/ext/pdo_sqlite/...(这里为啥用sqlite扩展,因为PHP安装包内不携带redis扩展) 如果/usr/local/php/ext/目录存在拓展,都可以不用下载直接进入对应安装包目录下 二、编译php扩展 1.在拓展目录中执行命令...usr/local/php7/bin/phpize 或者 phpize 具体看你PHP安装位置,和phpize命令设置 2.执行命令 ....make && make install 编译完成后屏幕会打印出拓展位置,可以进行复制移动 三、拓展 1.修改php.ini文件,对应拓展去掉冒号 extension=pdo_mysql extension...是在PHP编译时候,会从这个路径寻找拓展 2.编译完成后记得重启php-fpm service php-fpm restart 如果报错提示:找不到redis.so什么,确认下刚刚编译成功

1.8K20

centos安装php5、卸载php、安装php7教程

首先安装php5很简单 yum install php 然后如果不想用php5的话那就卸载吧 注意只使用yum remove命令是行不通 那我们先 yum remove php 然后你需要 rpm -...qa | grep php 来查看php及其安装依赖(包)都有哪些,然后逐个卸载 譬如 然后再用以下命令逐个卸载 rpm -e 譬如 然后让我们安装php7及其常用 先更新yum源 rpm -Uvh...yum install php70w 此教程针对于centos7系统 centos6可能源不一样,需要其他源 不过不如用docker 总结 以上所述是小编给大家介绍centos安装php5、卸载php...、安装php7教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。...在此也非常感谢大家对ZaLou.Cn网站支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

1.5K21

设置PHP环境变量,区分PHP测试环境和正式环境【php

1,查看 env 查看全局环境变量 set 查看所有环境变量 echo $SHLVL 查看单个环境变量 unset name 删除环境变量 针对本次会话有效 2,设置 设置环境变量 PHP_ENV...=dev ,将环境变量提升为全局 export PHP_ENV 针对本次会话有效,下次登录消失 长久有效,写入文件 /etc/profile 全局 ~/.bash_profile 局部...文件结尾加入:export PHP_ENV=dev source /etc/profile 重新加载 二,通过环境变量区分测试环境正式环境 1,机器 在正式环境设置环境变量 PHP_ENV=...prod 在测试环境设置环境变量 PHP_ENV=test 2,程序 在PHP代码中,获取环境变量 getenv() 函数 根据不同变量,引入不同配置文件 从而达到同一次构建,自动引入不同配置文件

2.1K20

php常用三种设计模式【php

一、单例模式 1,含义 某个类只有一个实例,自动实例化并向整个系统提供这个类实例。 即:应用程序只会有这个类一个实例存在。 多用在数据库操作,线程池,缓存,打印机中。...2,特点 只有一个实例,必须有构造函数,标记为private 向其他成员提供访问这个实例静态方法 必须自行创建这个实例,拥有一个保存类实例静态成员变量 3,代码 class SingleCase...工厂模式通常用来返回符合类似接口不同类 2,特点 工厂模式一般有一个命名为Factory静态方法 这个静态方法接收一个参数 这个静态方法根据参数,返回不同对象实例 3,代码 class Factory...三、观察者模式 1,含义 观察者模式为您提供了避免组件之间紧密耦合另一种方法 分为主题和观察者,都需要实现接口和方法 主题里面进行观察者注册,并设置一个方法,这个方法作用是调用观察者方法进行通知观察者...其他注册过类都会收到update()方法通知。

40720
领券