


Some words written on the occasion of the release of PHP7
I have been doing open source for 4 or 5 years. From the initial Yaf to today's PHP7, I have participated in more and more projects, and more and more users are using my code. I will start it tomorrow. The release of PHP7 is definitely the most important milestone since I started working on open source. I should commemorate today and let me be a little emotional.
The PHP7 project started during the Spring Festival last year. At that time, our Opcache JIT project based on PHP-5.5 was basically shelved because we could not get the expected results. Some information collected while doing JIT made us realize that, The basic part was not good enough and could not support JIT very well, so around February 2014, we started the reconstruction project. The hope at that time was that through reconstruction, we could get more than 30% performance improvement, which would benefit the future. Provide a basis for further optimization.
We didn’t have a name for the project at that time, we were just trying it out. Those months were the busiest time for me, because we were the only two working on the project, and I was also busy with my work on Weibo. , so I basically only spent my evening time on it. But fortunately, there is a 5-hour time difference between me and another person, so a lot of work can be done in parallel.
As the project progressed, we were pleasantly surprised to find that the performance improvement was greater than we imagined. By April, another person joined in, and by May, most of the work had been basically completed, so We announced this result and named it the PHP NG project.
But what I didn’t expect was that we encountered a lot of resistance from the community, because when we were secretly developing PHP NG, the community was also working on a 64-bit support project, mainly initiated by Microsoft students. When we When PHP NG was released, they questioned that no one else understood how to maintain such a big patch suddenly, how to merge it with the 64-bit supported branch, etc., and then opposed the adoption of the PHP NG branch. At that time, I was very The frustrating, long-lasting quarrel also made me feel very tired. In the end, because I couldn't deal with it, I was so angry that I didn't care about my poor English. I responded to a complaint email in the mail group, calling on everyone to cherish this performance improvement branch.
There is also a very interesting episode. There are many supporters of PHP NG, and they are also very depressed about such quarrels. One day, some supporters posted such a news on the PHP official website: http:// php.net/archive/2014.php#id2014-05-27-1 which reads: "When we aren't looking for pictures of kittens on the internet, internals developers are nearly always looking for ways to improve PHP, a few developers have a focus on performance.", but the opponents said that day, no, PHP NG has not been accepted yet, and asked to delete this article. Fortunately, considering that the article had already been posted, this article was finally removed from the home page. The entrance to the article only retains the content in the archive. Many media have felt this mistake.
After arguing, we had no choice but to initiate a vote to decide whether to accept PHP NG. Fortunately, in the final vote, most people supported the PHP NG project and decided to start based on PHP NG. The development of our new version of PHP. At that time, it was not decided whether to use PHP6 or PHP7 version number (later voted to decide on PHP7). I often say that this experience made me feel the "pain of democracy".
Everyone can see what happens next. In the past two years, various new features have been added, performance has been continuously improved, many improvements that were previously unreasonable, etc. have been added to PHP7, allowing PHP7 is becoming more and more full-featured. From the changes in ZVAL at the bottom to scalar type hints, from the initial 30% performance improvement to the current performance leap of more than 100%, every change is worth looking forward to. And after several After several reluctant delays, finally, today, all this will be presented to you.
Sometimes I think that I am lucky. Lucky that I always have the opportunity to do things that I have never done before and that are challenging. Lucky that I can always feel my own growth. Lucky that most of my efforts will ultimately be successful. I have seen the results and been rewarded. I also sincerely hope that my luck can inspire more people to participate in open source.
In the future, we will continue to be committed to improving the performance and quality of PHP, so that more PHPers can continue to enjoy transparent improvements.
Finally, doing open source for so long has brought me a lot of gains. I want to thank everyone for the encouragement and the kind words of praise.
PS: I originally wanted to wait until PHP7 was released, but I thought I could build momentum for its arrival, so I released it first. PHP7 is now available for download. The official announcement will take into account the time difference. Let’s check it out the day after tomorrow. Download now. Address: http://php.net/get/php-7.0.0.tar.gz/from/a/mirror enjoy!

PHPsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIDstoredinacookie.Here'showtomanagethemeffectively:1)Startasessionwithsession_start()andstoredatain$_SESSION.2)RegeneratethesessionIDafterloginwithsession_regenerate_id(true)topreventsessi

In PHP, iterating through session data can be achieved through the following steps: 1. Start the session using session_start(). 2. Iterate through foreach loop through all key-value pairs in the $_SESSION array. 3. When processing complex data structures, use is_array() or is_object() functions and use print_r() to output detailed information. 4. When optimizing traversal, paging can be used to avoid processing large amounts of data at one time. This will help you manage and use PHP session data more efficiently in your actual project.

The session realizes user authentication through the server-side state management mechanism. 1) Session creation and generation of unique IDs, 2) IDs are passed through cookies, 3) Server stores and accesses session data through IDs, 4) User authentication and status management are realized, improving application security and user experience.

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

Reasons for PHPSession failure include configuration errors, cookie issues, and session expiration. 1. Configuration error: Check and set the correct session.save_path. 2.Cookie problem: Make sure the cookie is set correctly. 3.Session expires: Adjust session.gc_maxlifetime value to extend session time.

Methods to debug session problems in PHP include: 1. Check whether the session is started correctly; 2. Verify the delivery of the session ID; 3. Check the storage and reading of session data; 4. Check the server configuration. By outputting session ID and data, viewing session file content, etc., you can effectively diagnose and solve session-related problems.

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

Configuring the session lifecycle in PHP can be achieved by setting session.gc_maxlifetime and session.cookie_lifetime. 1) session.gc_maxlifetime controls the survival time of server-side session data, 2) session.cookie_lifetime controls the life cycle of client cookies. When set to 0, the cookie expires when the browser is closed.


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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Dreamweaver Mac version
Visual web development tools
