The development history of Zend engine (1)_PHP tutorial
Zeev discussed the object model brought by the Zend Engine, specifically mentioning how it differed from the model in previous versions of PHP. When we developed PHP 3 in the summer of 1997, we had no plans to Make PHP object-oriented. At that time, there were no ideas related to classes and objects. PHP3 is a purely process-oriented language. However, support for classes was added in the PHP3 alpha version on the evening of 1997.8.27. Adding a new Features were given to PHP, which required very little discussion at that time, because there were too few people exploring PHP at that time. So from August 1997, PHP took the first step towards an object-oriented programming language.
Indeed , this is just the first step. Because there are very few relevant ideas in this design, the support for objects is not strong enough. Using objects in this version is just a cool way to access arrays. Instead of using $foo[" bar"], you can use the prettier looking $foo->bar. The main advantage of the object-oriented approach is to store functionality through member functions or methods. The example in Figure 1 shows a typical code block. But it In fact, it is not much different from the approach in Figure 2.
PHP 3 object-oriented programming Object-oriented programming in PHP3
<?php class Example { var $value = "some value"; function PrintValue() { print $this->value; } } $obj = new Example(); $obj->PrintValue(); ?> Copy after login |
PHP 3 structural programming PHP3 Structure in PHP3 Programming
<?php function PrintValue($arr) { print $arr["value"]; } function CreateExample() { $arr["value"] = "some value"; $arr["PrintValue"] = "PrintValue"; return $arr; } $arr = CreateExample(); //Use PHP's indirect reference $arr["PrintValue"]($arr); ?> Copy after login |
Above we write two lines of code in the class, or explicitly pass the array to the function. But considering that there is no difference between these two options in PHP3, we can still just put the object Models are used as a "syntactic whitewash" to access arrays.
People who want to use PHP for object-oriented development, especially those who want to use design patterns, quickly find that they hit a wall. Fortunately At that time (PHP3 era) not many people wanted to use PHP for object-oriented development.
PHP4 changed this situation. The new version brought the concept of reference, which allows PHP Different identifiers point to the same address in memory. This means that you can use two or more names to name the same variable, as shown in Figure 3.
PHP 4 references in PHP4 Reference
<?php $a = 5; //$b points to the same place in memory as $a $b与$a指向内存中同个地址 $b = &$a; //we're changing $b, since $a is pointing to 改变$b,指向的地址改变 //the same place - it changes too $a指向的地址也改变 $b = 7; //prints 7 输出7 print $a; ?> Copy after login |
Figure 3
Since building a network of objects pointing to each other is the basis of all object-oriented design patterns, this improvement is of great significance. When references allow the establishment For more powerful object-oriented applications, PHP treats objects the same as other types of data, causing great pain to developers. As any PHP4 programmer will tell you, applications will suffer from WTMA (Way Too Many Ampersands&) Syndrome. If you want to build a practical application, you will feel extremely painful, look at the example 4 and you will understand.
1

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

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
