プログラマーは (一般に) 優れたプログラミング言語を、自分が最もよく知っている言語、または最も頻繁に使用する言語と定義します。私は PHP プログラマー、ジョンは JavaScript プログラマー、DHH は Ruby プログラマー、Schwartz と Randall は Perl プログラマーです。 プログラマーによって問題の見方は異なりますが、総合的に最良とみなされるプログラマーは常に 1 つまたは 2 つあります。
PHP 開発者として、PHP が軽視されているのを聞くたびに心が痛みます。
Web アプリケーションの言語として PHP を使用する必要がありますが、これは悪い言語であり、その使用を必要以上に推奨したりサポートしたりすべきではありません。
おっと、私が毎日使っている言語が悪い評価をされていると聞くと、自分が選んだ言語について、自分が同意していれば他人の評価は気にしなくていい、と言う人もいるかもしれません。本当にそうすべきではないと思います。この発言が意味するのは、言語と開発者がひどいだけでなく、私たち PHP 開発者もひどいということです。
それでは、他人の大きな口を封じるために具体的に何をすべきでしょうか? PHP 言語を尊重できるようになるのでしょうか? これを実現できるいくつかの側面を分析してみましょう。
1. すべてを壊す
PHP7 はすべてを壊します。 PHP 開発者は、バージョン間の下位互換性を破壊するという法則を受け入れる必要があります。広範な下位互換性が許可されない限り、PHP7 は非常に尊敬される言語となるでしょう。
1. 特定のコア言語を作成します
すべてのライブラリ メソッドを削除し、オブジェクト セット内のコア メソッドを保持します。 外部ライブラリや拡張機能を使用せずに、基本的な入出力、文字列処理、および数学のための優れた完全な言語を作成できる PHP7 を作成できるはずです。ライブラリ外の拡張は承認される必要があります。
2. すべてをオブジェクトとして扱います
Ruby、Smalltalk、および (主に) Java からオブジェクトを取得し、それをすべてオブジェクトとして扱います。 整数はオブジェクトであり、文字列はオブジェクトであり、それぞれに操作可能なメソッドがあります。Ruby と Smalltalk がオブジェクト間でメッセージを渡す必要があり、オブジェクト メソッドを呼び出すことが最善であるという概念が PHP には必要ないと思います。
3. 一貫した名前のメソッドとクラス
PHP に関する最大の不満の 1 つは、(needle,haystack) または (haystack, neede) または some_function() または function_some() を常にチェックしなければならないことです。 someFunction() を使用するには、一貫した形式を開発する必要があります。
4. 厳密にしてください
float 文字列をメソッドに渡してみませんか? これは警告です。
5. すべてが Unicode です
PHP6 のすべての文字列が Unicode であることは良いことであり、私は PHP7 も維持されるべきだと主張します。
6. 中心的な起動ポイント
すべてのコード実行の起点となるメインクラスまたは初期化を作成します。
7. C コードをクリーンアップする
私は C の専門家ではありませんが、PHP の C コードよりも Ruby の 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. コピーオンライト (COW) の削除
COW は非常に馴染みのない概念であり、その存在を知らないと、新しい開発者にとって問題が発生する可能性があります。
13. PHP 公式リリース仕様
W3C HTML5 仕様と同様に、PHP 仕様では、開発者が独自のバージョンの PHP を実装し、コンパイルする特定のサンプルが存在することを保証します。
2. 言語を尊重する
私たちは言語を尊重するよう努めるべきです。 私たちは、非常に強力な機能を備えた PHP7 を開発する開発者を募集するために最善を尽くすべきです。 私たちは巨大なコードを安全かつ読みやすくし、新しい開発者に正しい方法でプログラミングすることを教える必要があります。
Ruby の狂気については知りませんが、Ruby 言語を尊敬しています。 私は Ruby on Rails の威力を認めていますし、Ruby on Rails は非常に優れたフレームワークだと考えていますが、私の好みではありません。評判の良い開発者からの認知や尊敬を得ることができれば、PHP はさらに進化するでしょう。
3. 開発者を尊重する
上記の理解から、私たちは非常に尊敬される PHP 開発コアチームを必要としています。 彼らはコードをリリースし、講演し、物事の「正しい方法」を人々に示し、このチームはすぐに多くの開発者の尊敬を得るでしょう。
結論
PHP の将来に興奮しています。 私のアイデアが実現されるかどうかは非常に疑わしいですが、社会全体に役立つと心から信じています。 世界第 2 位の Web サイトが、PHP による素晴らしいコミュニティの構築を支援していると発表したとき、私はとても興奮しました。 PHP は消えることはなく、改良に努め続ける限り、いつかは PHP が開発者から一般的に尊敬される言語になるでしょう。
最後に、私は言語デザイナーではありません。 私のアイデアはまったくナンセンスだと思われるかもしれません。 私のどこかが間違っている場合は、丁寧にお知らせください。喜んでお話しします。 PHP が高く評価され、強力で高速かつ効率的な言語になるよう、協力していきましょう。コンパイルにエラーがある場合は、修正してください。

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

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

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

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

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

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

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

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


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Dreamweaver Mac版
ビジュアル Web 開発ツール

ホットトピック



