PHP 之父Rasmus Lerdorf 在创造出PHP时,他并没有用格陵兰语或者丹麦语编写(尽管他有格陵兰和丹麦血统),这是非常明智的。虽然对他来说用英语编写,并没有用自己母语编写来得容易。由于他以前在加拿大待过,所以他选择了本地方言。不是法语,也不是不合纯正英语标准的方言,我们通常称其为“美式英语”。
从那以后,英国的PHP开发人员就对这件事情格外不满。Rasmus 在想什么?更重要的是,我们要如何改变这个既成的事实?我们开发人员如何保证即使在数字时代,大英帝国的优良传统也能继续发扬光大?
一记耳光
<ol class="dp-xml"><li class="alt"><span><span>$variable_name </span></span></li></ol>
最有必要更改就是要删除一些深受美国人喜欢的符号,并用一些更加精炼的符号代替,让PHP变得更加优雅。
<ol class="dp-c"><li class="alt"><span><span>£variable_name </span></span></li></ol>
开始吧
<ol class="dp-xml"> <li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li> <li><span>echo 'Hello World!'; </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
今天的英国程序员中,有多少人一开始接触到的就是“Hello World”这个典型的美国式程序,虽然简单但老套粗俗令人反感?一份更加冠冕正式的介绍将会促进大部分年轻的英国天才使用这种语言,从而为更广阔的用户群提供更加文雅的气氛。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li> <li><span>announce 'Good morrow, fellow subjects of the Crown.'; </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
缩写词
没有东西比没必要的缩写词更加让英国人痛恨的。“缩写词”在伦敦的街道上闻所未闻,正如土生土长的英国文法家不肯自降身份去发送“c u soon traffic kthxbye”等各种信息,宁愿使用一些看起来更加文雅的词句代替:“亲爱的先生或女士。只要时间允许,我希望在一个小时之内,尽快到达。我向各位保证,你们的马匹会得到妥善安置。敬上。”(输入较慢,是的,但是不至于仓促)。
从另一方面来说,PHP里面包含很多毫无必要的缩写字和缩写字首字母。
<ol class="dp-xml"> <li class="alt"><span><span>str_replace() </span></span></li> <li><span>is_int() </span></li> <li class="alt"><span>var_dump() </span></li> <li><span>preg_match() </span></li> <li class="alt"><span>json_encode() </span></li> <li><span>mysql_connect() </span></li> </ol>
应该改成下面这样:
<ol class="dp-xml"> <li class="alt"><span><span>string_replace() </span></span></li> <li><span>is_integer() </span></li> <li class="alt"><span>variable_dump() </span></li> <li><span>perl_regular_expression_match() </span></li> <li class="alt"><span>javascript_object_notation_encode() </span></li> <li><span>my_structured_query_language_connect() </span></li> </ol>
校正:我已经更正了“preg_match”的扩充——感谢指出来的朋友。
口才
<ol class="dp-c"> <li class="alt"><span><span class="keyword">if</span><span> (</span><span class="vars">$condition</span><span>) { </span></span></li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"> <span>} </span><span class="keyword">else</span><span> { </span> </li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"><span>} </span></li> </ol>
莎士比亚可不愿意看到他的母语被扭曲成这个怪物。简练在适当的场合很受欢迎——在一些偏僻的地方未必如此——但不是这里。“if … else”模块是PHP之中用得最多的条件代码,所以它在使用时必须是尽可能的安全无害。有很多选择可以取代,但是这个条件语句也许是最稳健的。
<ol class="dp-c"> <li class="alt"><span><span>perchance (£condition) { </span></span></li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"><span>} otherwise { </span></li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"><span>} </span></li> </ol>
上述模块同样适用于美国化的,只能说是笨重的,让人厌恶的switch … case概念,
<ol class="dp-c"> <li class="alt"><span><span class="keyword">switch</span><span> (</span><span class="vars">$variable</span><span>) { </span></span></li> <li> <span> </span><span class="keyword">case</span><span> </span><span class="vars">$option1</span><span>: </span> </li> <li class="alt"> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li> <span> </span><span class="keyword">break</span><span>; </span> </li> <li class="alt"> <span> </span><span class="keyword">case</span><span> </span><span class="vars">$option2</span><span>: </span> </li> <li> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li class="alt"> <span> </span><span class="keyword">break</span><span>; </span> </li> <li> <span> </span><span class="keyword">default</span><span>: </span> </li> <li class="alt"> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li> <span> </span><span class="keyword">break</span><span>; </span> </li> <li class="alt"><span>} </span></li> </ol>
像”switch”, “break” and “default”这样的关键字对读者来说很有难度并且缺乏联系。这种美式用法真是需要改进。(使用美式用法的人有一些有趣的想法,期望用i_might_be_partial_to()这样的语句来代替include()来显示他们天才的编程天赋):
<ol class="dp-c"> <li class="alt"><span><span>what_about (£variable) { </span></span></li> <li><span> perhaps £possibility: </span></li> <li class="alt"> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li><span> splendid; </span></li> <li class="alt"><span> perhaps £other_possibility: </span></li> <li> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li class="alt"><span> splendid; </span></li> <li><span> on_the_off_chance: </span></li> <li class="alt"> <span> </span><span class="comment">//Code here </span><span> </span> </li> <li><span> splendid; </span></li> <li class="alt"><span>} </span></li> </ol>
拼写
<ol class="dp-c"> <li class="alt"><span><span>imagecolorallocate() </span></span></li> <li><span>serialize() </span></li> <li class="alt"><span>newt_centered_window() </span></li> <li><span>connection_status() </span></li> </ol>
在这点上,单词让我吃过不少亏。自重的绅士期待该如何看得懂这些“单词”。它削弱了任何人接受编程语言中单词的曲解含义的信念。这些“单词”和众多相似的错误,应该立即恢复到适当的形式。
<ol class="dp-c"> <li class="alt"><span><span>imagecolourallocate() </span></span></li> <li><span>serialise() </span></li> <li class="alt"><span>newt_centred_window() </span></li> <li><span>connexion_status() </span></li> </ol>
习惯
<ol class="dp-c"> <li class="alt"><span><span>try { </span></span></li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"> <span>} catch (Exception </span><span class="vars">$e</span><span>) { </span> </li> <li> <span> </span><span class="comment">// Handle exception </span><span> </span> </li> <li class="alt"> <span> </span><span class="keyword">die</span><span>(</span><span class="string">'Message'</span><span>); </span> </li> <li><span>} </span></li> </ol>
try … catch 语句块是PHP缺乏特点的一个很好证明。新的PHP过于直接地允许使用该模块,缺乏应有的限制。另外,单词“die”很让人丧气。这个新模块,尽管更加冗长,但更为文雅和乐观。
<ol class="dp-c"> <li class="alt"><span><span>would_you_mind { </span></span></li> <li> <span> </span><span class="comment">// Code here </span><span> </span> </li> <li class="alt"><span>} actually_i_do_mind (Exception £e) { </span></li> <li> <span> </span><span class="comment">// Politely move on </span><span> </span> </li> <li class="alt"> <span> cheerio(</span><span class="string">'Message'</span><span>); </span> </li> <li><span>} </span></li> </ol>
类
在英国人的心里,没有什么东西跟类的概念一样重要和根深蒂固,而且,PHP当中的这一部分很少变动,除非是这里做出的重要更改。
<ol class="dp-c"> <li class="alt"><span><span class="keyword">class</span><span> Republic { </span></span></li> <li> <span> </span><span class="keyword">public</span><span> </span><span class="vars">$a</span><span>; </span> </li> <li class="alt"> <span> </span><span class="keyword">private</span><span> </span><span class="vars">$b</span><span>; </span> </li> <li> <span> </span><span class="keyword">protected</span><span> </span><span class="vars">$c</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li> <span class="vars">$example</span><span> = </span><span class="keyword">new</span><span> Republic; </span> </li> </ol>
首先,流行的系统中并没有类层次存在的余地,这是无法接受的。所以我们首先应该赋予类的特定等级——上层,中层,工作层(upper, middle, working )——如果没有更高等级指令类的明确许可,类就无法使用一个更高级的类的方法(当然,即使它后来已经访问了更高级的类,但它并非更高级指令的正式成员,无法授予自身访问其他低级别指令类的更高级指令)。“public”和“private”,在英国人的类系统中是同义词(例如,学校制度命名),所以这些必须进行调整,“protected”的属性可见性也一样。单词“new”,虽然可行,但在类问题上需要有一个更加恰当的词来代替。
<ol class="dp-c"> <li class="alt"><span><span>upper_class Empire { </span></span></li> <li><span> state £a; </span></li> <li class="alt"> <span> </span><span class="keyword">private</span><span> £b; </span> </li> <li><span> hereditary £c; </span></li> <li class="alt"><span>} </span></li> <li><span>£example = nouveau Empire; </span></li> </ol>
日不落…
希望这些少数简单的变动能够提升PHP在众多编程语言之中的声誉和地位。它不再是蹩脚美国人的远亲。相反,它能重新回到作为脚本语言之王的英国人的怀抱中。
英文原文:

Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft
