찾다
백엔드 개발PHP 튜토리얼展望PHP7:PHP需要改变什么_PHP教程
展望PHP7:PHP需要改变什么_PHP教程Jul 20, 2016 am 10:57 AM
phpphp7일반적으로무엇사용정의전망변화최대최대알다프로그램 제작자프로그래밍 언어필요

程序员(一般)定义好的编程语言是他们知道最好或最经常使用。我是一个PHP程序员,约翰是一个JavaScript程序员,DHH是一个Ruby程序员,施瓦茨和兰德尔是一个Perl程序员。 每个不同程序员看待问题都是不一样的,但是总有一两个会被共同认为是最好的。

每当听到PHP被不尊重的时候,作为一个PHP开发人员,感觉很受伤。

虽然我们必须使用PHP为一个用于Web应用程序的语言,但它是一个烂语言,其使用不应予以鼓励,或支持超出了必要。

哎哟,听说我日常使用的语言,被给予很烂的评价时候,有人可能会说你不应该管其他人对你选择的语言的评价,只要自己认可就行。我想我真的不应该吗,而且该声明暗示的是,不仅是语言很烂,开发商烂,而且我们PHP开发者也烂。

那么,究竟应该怎么做才关闭他人的大嘴巴呢?我们能否使PHP语言受到尊重? 我们能否让PHP开发人员受到尊重? 让我们来分析某些方面我们可以做到这一点。

一、打破一切

PHP7要打破一切。 PHP开发人员应该接受打破版本之间向下兼容的定律。只要不允许大量的向后兼容,PHP7将是一个高度尊重的语言。

1、创建一个具体的核心语言

删除所有库方法,并保持在对象集中的核心方法。 您应该能够编写无需任何外部库或扩展PHP7和对基本输入/输出,字符串处理和数学一个很好的完整的语言。库以外的任何应该通过批准扩展。

2、一切都当作一个对象

以从Ruby,Smalltalk和(主要)的Java对象,并把它一切当作对象。 整数是对象,字符串是对象,他们每个人都可以操作的方法, 我不相信PHP需要的Ruby和Smalltalk在对象之间传递彼此讯息的观念,而调用对象的方法才是最好的。

3、一致的命名方法和类

由于PHP的最大的抱怨之一是不断要检查,(needle,haystack) 或(haystack, needle),或some_function(),或function_some(),或someFunction(),一个一致的格式需要制定。

4、让事情严格

尝试传递到一个方法浮动字符串? 这是一个警告。

5、 一切是Unicode

在PHP6中的所有字符串都是Unicode,这很好,我主张PHP7也应该保持。

6、中央启动点

创建一个主类或初始化,所有代码执行源于此。

7、清理C代码

我不是一个C的专家,但如果你比较了解Ruby的​​C代码到PHP的C代码,可以很容易地了解了PHP与Ruby的​​内部。 我非常熟悉PHP,所以我自己的写扩展更容易。

8、摆脱eval()

eval()是邪恶的。 如果你正在使用它,那么这是一个错的主意:这将打破PHPUnit,抛弃它从现在开始。

9、支持操作符重载

因为一切都是对象,开发者只需掌握操作对象的方法即可。

10、允许的方法签名

允许真正的方法签名,所以程序员可以有不同的参数列表或返回类型的同名方法。

<ol class="dp-c">
<li class="alt"><span><span class="keyword">class</span><span> A {   </span></span></li>
<li>
<span class="keyword">public</span><span> int </span><span class="keyword">function</span><span> doSomething(int </span><span class="vars">$a</span><span>, float </span><span class="vars">$b</span><span>) {   </span>
</li>
<li class="alt">
<span class="comment">// Same as $a->*($b->to_int());  </span><span> </span>
</li>
<li>
<span>int </span><span class="vars">$c</span><span> = </span><span class="vars">$a</span><span> * </span><span class="vars">$b</span><span>->to_int();   </span>
</li>
<li class="alt">
<span class="keyword">return</span><span> </span><span class="vars">$c</span><span>;   </span>
</li>
<li><span>}   </span></li>
<li class="alt">
<span class="keyword">public</span><span> float </span><span class="keyword">function</span><span> doSomething(int </span><span class="vars">$a</span><span>, float </span><span class="vars">$b</span><span>, float </span><span class="vars">$c</span><span>) {   </span>
</li>
<li>
<span class="comment">// Same as calling $a->*($b->*($c)); since * is a method on each object $a and $b.  </span><span> </span>
</li>
<li class="alt">
<span>float </span><span class="vars">$d</span><span> = </span><span class="vars">$a</span><span> * </span><span class="vars">$b</span><span> * </span><span class="vars">$c</span><span>;   </span>
</li>
<li>
<span class="keyword">return</span><span> </span><span class="vars">$d</span><span>;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>}  </span></li>
</ol>

11、建立一个PHP虚拟机(PVM)

我不能完全肯定这是可能的,因为我不是一个语言设计师,但它会是不错的一个PHP虚拟机。 它可以执行PHP字节码,并允许一个明确的堆和堆栈。

12、删除copy-on-write (COW)

COW是一个相当陌生的概念,,如果你不知道它的存在,以新的开发,就可能导致问题。

13、PHP官方发布规格

类似于W3C HTML5规范,PHP的规格将允许开发人员实现自己的PHP版本,并确保有具体的例子来编译。

二、尊重语言

应努力使语言得到尊重。 我们应尽量招募开发者做出具有非常强大功能的PHP7。 我们应该释放巨大的代码的安全,易于阅读,并教新的开发者以正确的方式编程。

我不知道Ruby的疯狂,但我尊重Ruby语言。 我看到它的力量,我看在Ruby on Rails是一个非常好的框架,它只是我不是喜欢的。如果我们能获得具有很好威望的开发商认可或尊重,PHP就会走的更远。

三、尊敬开发人员

从上文的理解,我们需要一个非常德高望重的PHP开发核心团队。 他们发布代码,举办讲座,向人们展示了“正确的方式”做事,这支团队将很快的受到不少开发商的尊重。

结论

我兴奋PHP的未来。 我很怀疑我的想法会被执行,但我真的相信他们会帮助整个社会。 我感到非常兴奋,当 世界第二大的网站宣布,他们正在帮助PHP建立伟大的社区。 PHP是不会消失,他会越来越好,只要我们努力提高它,改善它,终有一天PHP会成为受开发者普遍尊重的语言。

最后,我不是一个语言设计师。 我的想法可能会被认为完全胡说。 如果我不正确的地方,请礼貌地让我知道,我会很高兴地谈论它。 让我们共同努力,使PHP成为备受尊重,功能强大,快速,高效的语言。编译若有差错,欢迎指正!


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/445773.htmlTechArticle程序员(一般)定义好的编程语言是他们知道最好或最经常使用。我是一个 PHP 程序员,约翰是一个JavaScript程序员,DHH是一个Ruby程序员,施瓦...
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php7检测tcp端口不好用怎么解决php7检测tcp端口不好用怎么解决Mar 22, 2023 am 09:30 AM

在php5中,我们可以使用fsockopen()函数来检测TCP端口。这个函数可以用来打开一个网络连接和进行一些网络通信。但是在php7中,fsockopen()函数可能会遇到一些问题,例如无法打开端口、无法连接到服务器等。为了解决这个问题,我们可以使用socket_create()函数和socket_connect()函数来检测TCP端口。

php7.0怎么安装mongo扩展php7.0怎么安装mongo扩展Nov 21, 2022 am 10:25 AM

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

php7.0安装了插件还是显示未安装怎么办php7.0安装了插件还是显示未安装怎么办Apr 02, 2024 pm 07:39 PM

解决 PHP 7.0 中插件未显示已安装问题的方法:检查插件配置并启用插件。重新启动 PHP 以应用配置更改。检查插件文件权限,确保其正确。安装丢失的依赖项,以确保插件正常运行。如果其他步骤均失败,则重建 PHP。其他可能原因包括插件版本不兼容、加载错误版本或 PHP 配置问题。

php7.0怎么安装部署php7.0怎么安装部署Nov 30, 2022 am 09:56 AM

php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。

PHP 服务器环境常见问题指南:快速解决常见难题PHP 服务器环境常见问题指南:快速解决常见难题Apr 09, 2024 pm 01:33 PM

PHP服务器环境常见的解决方法包括:确保已安装正确的PHP版本和已复制相关文件到模块目录。临时或永久禁用SELinux。检查并配置PHP.ini,确保已添加必要的扩展和进行正确设置。启动或重启PHP-FPM服务。检查DNS设置是否存在解析问题。

php8和php7哪个好php8和php7哪个好Nov 16, 2023 pm 03:09 PM

PHP8相较于PHP7在性能、新特性和语法改进、类型系统、错误处理和扩展等方面都有一些优势和改进。然而,选择使用哪个版本要根据具体的需求和项目情况来决定。详细介绍:1、性能提升,PHP8引入了Just-in-Time(JIT)编译器,可以提高代码的执行速度;2、新特性和语法改进,PHP8支持命名参数和可选参数的声明,使得函数调用更加灵活;引入了匿名类、属性的类型声明等等。

记录一次用strace诊断php占用系统资源过高的问题记录一次用strace诊断php占用系统资源过高的问题May 03, 2024 pm 04:31 PM

本地环境:redhat6.7系统。nginx1.12.1,php7.1.0,代码使用yii2框架问题:本地的web站需要用到elasticsearch服务。当php使用本地服务器搭建的elasticsearch时,本地的负载都是正常。当我使用aws的elasticsearchservice服务时,本地服务器出现负载经常过高的情况。查看nginx和php日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个strace诊断工具。调试过程:查找一个php的子进程idstrace-

如何在系统重启后自动设置unixsocket的权限?如何在系统重启后自动设置unixsocket的权限?Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음