德国开放源码软件开发者Frank Karlit-schek主导的ownCloud项目,是目前采用PHP编写的最大型开源项目之一。他在谈及为何选择PHP时,提到以下几点。 普遍性:ownCloud的目的是让所有人来托管自己的云服务器。而PHP目前广泛用于Web服务器、操作系统,平台的优势
德国开放源码软件开发者Frank Karlit-schek主导的ownCloud项目,是目前采用PHP编写的最大型开源项目之一。他在谈及为何选择PHP时,提到以下几点。
- 普遍性:ownCloud的目的是让所有人来托管自己的云服务器。而PHP目前广泛用于Web服务器、操作系统,平台的优势使得用户能轻松地进行部署。
- 通用性:作为脚本型语言,一个服务器tar文件可以运行于所有的平台而无须复杂的额外编译。
- 门槛低:大多数程序员对PHP都不陌生,即使是零基础的用户,学习PHP也是相对轻松容易。
- 轻巧强大:只要使用得当,PHP运行速度快,功能强大。维基百科、Facebook、WordPress等大型Web应用都是用PHP编写的。
- 资源丰富:PHP拥有庞大的开发生态系统,包括类库、组件、连接器/驱动等。使用它就如同站在了巨人的肩膀上。
但纵然PHP有这些亮丽的优点,Frank也指出它有不足之处。
- 安全性:作为20世纪90年代的产物,它在安全性方面的表现不能令人放心,毕竟那个时候人们的安全意识还是比较天真幼稚的。
- 编译时间/运行时配置:调用 ./configure脚本来随心所欲地按照自己意愿编译PHP听起来很有趣,但如果进行换位思考,我们在维护时要逐字逐句地查看别人的脚本配置那就不见得那么美好了。
- 矛盾的函数和类命名:一时是下划线,一时是驼峰命名;某些特性可以是过程风格或是面向对象接口风格,甚或兼而有之。
- 静态类型:PHP在静态类型上可以做得更好。
最近Apple新推出的开发语言Swift触动了Frank,语言在更新换代时是需要保持向下兼容还是完全创新?而如果是类似Perl和Python那样无法前后兼容,最终分道扬镳的局面,是大家不想看到的。对此,Frank就PHP的未来提出了自己的想法。
- 安全性:摒弃GET、POST、_SERVER,引入一个合适的API来对数据输入进行筛选。
- 数据库:PHP的数据库支援API真的太丰富了。但某些API已经非常老旧甚至过时了。Frank建议对此进行标准化,最终形成唯一的面向对象接口就可以了。PDO是他做出的第一步尝试。
- 32位/64位:在32位或64位运行PHP时,人们多少会发现特别是整型数据的运行差别。消除不同类型系统的运行差别是非常必要的。
- 剔除savemode、openbasedir等传统概念,使用unicode字符。
- 移除大部分有关编译和运行时配置的选项:所有下一代PHP的运行时环境应该是尽可能统一和稳定的。
- 类型:引入可选静态类型的做法必定是非常令人激动的。这样的话一个变量可以定义为布尔或整形。如果错误地使用了变量,会抛出一个异常。
本文作者Frank Karlitschek系ownCloud发起人,自由软件开发者。
原文:http://karlitschek.de/2014/10/a-possible-future-for-php/
本文为《程序员》编译整理
原文地址:PHP未来的一些可能, 感谢原作者分享。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Notepad++7.3.1
Easy-to-use and free code editor
