Microsoft initiative designed to promote flawless and transparent access to the web from all of its applications. This takes several forms, of which the key two are the Common Language Runtime (CLR) and the other is the Messenger program. The CLR is designed to allow various languages, such as C++, C#, VB, Eiffel, Delphi, and others, to compile down to the same set of instructions. This in turn allows developers to mix their language, making use of objects from one language in a project developed in a different language. Practically this also means that the CLR can be re-implemented on other platforms, as has been done in the Mono project. .NET must also be considered in terms of Microsoft's "Hailstorm" single-signon plans - but that's all in the future.
Microsoft technology, "ActiveX Data Objects", which allows DBMS-independent database access through various COM objects. The key advantage to ADO, beyond it is DBMS-independence, is that its COM objects can be accessed easily from many places, including PHP.
The name for the < and > symbols.
An array is a collection of variables of potentially varying types, including other arrays. Arrays are designed to take advantage of the fact that many things group together, such as the days of the week, the players in a football team, or the colours in a rainbow. Standard arrays are considered one-dimensional, meaning that they have just one row of values. However, as you are able to place arrays within arrays, you get multi-dimensional arrays, which are often much hard to visualise. A two-dimensional array can be thought of as a grid, and a three-dimensional array can be thought of as a cube of grids, however arrays of four dimensions and upwards boggle the brain in the same way that four-dimensional space does.
Colloquialism for web log , meaning the personal diary of someone printed online for others to read and comment on. Blogs are an easy way to get content for your site, and are often credited with being the ruin of Google thanks to the ability of blogs to have thousands of people manipulate Google's search system (so called Google-bombing) so that some entries come higher than they otherwise would in search results.
A variable that can be either true or false. Defaults to false.
The term for the { and } symbols.
In US English "bracket" is the name for the [ and ] symbols. In UK English, "bracket" is the name for the ( and ) symbols. Compare parenthesis , and square brackets .
The Berkeley Standard Distribution of Unix. Now available in many flavours, such as FreeBSD and OpenBSD, BSD has formed the foundation of some the top OSs in the world, including Solaris, Mac OS X, and Windows NT/2000/2003 to name just a few. BSD uses the BSD licence, which allows authors to take source code and use it however they want, including not releasing it back to the public if they so wish, hence how it has come to be used in at least three proprietary OSs.
The Common Gateway Interface, a standard manner for scripting engines to interact with the web before Apache modules became popular.
Text that has been encrypted. Compare plaintext .
A schematic description of an entity in your code. Classes are merely blueprints, they do not exist and cannot be used beyond static class variables. Compare object .
The Command Line Interface - often referred to as the shell in Unix or the command prompt in Windows. The CLI is the most basic way to interact with computers that does not involve punch cards - you type your answer, and get your response.
The Component Object Model, an initiative of Microsoft to break up parts of their software into reusable chunks that can be mixed for improved functionality. The Internet Explorer HTML renderer is a COM object, for example, and so can be embedded inside other Windows apps. As a result, there are hundreds (thousands?) of Visual Basic web browsers written by people with nicknames such as "VBg0d66".
Computer program designed to turn source code, i.e. human-readable text, into code that can be read by your computer. Some compilers create machine instructions, literally the 1s and 0s that make your computer tick, whereas others such as PHP and Java create intermediate code, which is half-way between machine instructions and source code, and requires an interpreter to execute. Code that has been passed through a compiler is referred to as "compiled", and may be natively executable on the local machine.
PHP uses a compile/interpret solution, however PHP opcode caches are able to cache the compiled PHP scripts so that they can be interpreted directly rather than recompiled each time.
Short chunk of data (under 64kb) that resides on your clients' systems and contain pieces of information you have stored there. This might be their username and password for your site, so they can auto-login, or it might be tracking information so that you remember what country they are from. Cookies cannot be read anywhere other than the site that created them, and similarly the site cannot read anything but the cookie - credit card details, etc, are quite safe. Compare session .
Technique employed in many programming languages, including PHP, whereby copying object A to object B merely makes B reference A. Similarly copying B to C makes C reference A also. Only when A is changed is a fresh copy made - the original object A remains, and a new version is created and assigned to A. This is done so that most copy operations are lightning fast - no real copying is done most of the time.
Cascading Stylesheets. W3C technology designed to help separate the style of pages from their content, with the goal of having CSS containing all style information and XHTML/XML containing all content information. CSS 1 is implemented in most web browsers. CSS 2 is fully implemented in only a few, namely Mozilla and Opera, and poorly implemented in Internet Explorer and Konqueror. CSS 3 is in the final processes of being ratified at this time.
Properly written cURL, this is a technology designed to abstract the differences between various web protocols, including HTTP and FTP, as well as Gopher, Telnet, LDAP, and others,
Physical data storage medium that holds multiple data tables. Usually controlled by a DBMS.
Database Management System. Advanced storage and retrieval system designed to be queried using Structured Query Language (SQL) for data manipulation. DBMSs are, in a sense, glorified file systems, and have numerous optimisations to make their operation faster and more secure, including triggers, stored procedures, etc.
Distributed Component Object Model. Microsoft initiative to make COM available across networks, and allows remote invocation of COM objects and methods.
The Domain Name System. This converts domain names, such as www.example.com, to a series of machine-readable digits, such as 63.209.112.5.
Compiled add-on to PHP that offers new functionality such as the MySQL extension, which allows you to connect to MySQL databases.
Highly popular Macromedia format and product that is designed to allow animated vector graphics, with sound, to be streamed on the web.
A table that has a field containing the value of a field that forms the primary key of another table is considered to have a foreign key field - the field is a primary key elsewhere, hence "foreign". See primary key .
Method of user input that allows you to design simple interfaces using HTML. Forms can have text boxes, dropdown boxes, radio buttons, etc.
The File Transfer Protocol. Method of transferring large amounts of data across the web in a safe fashion. FTP is not secure in is standard form.
Independent code block that you can call from elsewhere in your script, passing in parameters to use therein. Upon completion, the function passes script execution control back to where it was called from, and the script continues.
The term used to describe PHP's process of automatically cleaning up and freeing resources, connections, and variables that are used within each script. Often referred to simply as GC
HTTP transfer protocol that transfer variables from a form in the URL. Although all data accepted through the web should be treated with suspicion, GET data is particularly easy to hack as it just requires a small change in the URL to make a big difference if no protection is put in place. See Post .
Graphics Interchange Format. Gained popularity on the web because it is able to display transparency and also because it provides animation capabilities. Suffered massive backlash when a patent on GIF was enforced by its owner, Unisys, and a free alternative was developed in the form of PNG. As of June 2003, the GIF patent expired across the world in July 2004.
The GNU General Public Licence, also known as "copyleft". The GPL, under which software such as Linux and MySQL is released, allows programmers to take and use source code as they wish, including selling it, as long as they keep the original source code available and give back to the community any changes they have made. Although not as free as the BSD licence, the GPL does help encourage community growth.
The Gimp Toolkit. The C-based GUI system upon which the GNOME desktop system is written.
Graphical User Interface, also known as Windows, Icons, Mouse, and Pointer system (WIMPs). Any point-and-click interface that allows users to interact visually with their programs.
Name for the # symbol.
A hash is a one-way, repeatable algorithm designed to turn data into a recognisable, comparable, fixed-length value. The SHA1 hash, for example, turns strings of any length into a 40-character string of letters and numbers. Hashes do not contain their original text - you cannot unencode a hash to get the original string.
HyperText Markup Language. A very simplified form of XML and SGML that describes how a web page should appear in a web browser. HTML 4, the current specification, is heavily biased towards use with CSS to keep content and layout setitlete.
HyperText Transport Protocol. Very simple method of transferring web pages across the web. HTTP has more recently been put to use as the method of delivery for web services, as many clients behind firewalls do not have access to the Internet beyond port 80.
To index a database table is to provide a quick lookup system for the DBMS to help it find records quickly. Instead of searching sequentially through every record in your table, the DBMS can instead consult an index and jump immediately to the exact spot where the required row lies.
In order to help OOP developers make the most of their classes, one class can build upon, or inherit from another, thereby receiving all its existing functions and variables. Class person might inherit from class mammal , and class man might inherit from class person , etc.
File format defined by the Joint Photographic Experts Group. Excels at compressing photographic imagery as it attempts to keep the picture looking similar by stripping out detail information.
Lightweight Directory Access Protocol, essentially a system to retrieve address book and contact information from a central server for client use. LDAP servers are becoming increasingly important in business where single sign-on and identification services are becoming critical to easy business operation.
Often just called "lexer". This converts source code into a stream of tokens for use by a parser.
Any function in PHP that begins with two underscores, __, is likely to be a magic function that has been created by the PHP developers for special use. It is not recommended that developers create their own functions that start with two underscores, as their chosen name may be used in future versions of PHP.
Memcache is an open source key-value store that lets you save data across script executions extremely efficiently. For high-performance websites, either memcache or redis is pretty much required.
The term "method" is often used to mean a function of an object.
To normalise a table is to split it up into multiple, more compartmentalised tables based upon a set of rules.
Non-existent or unknown data. Null is not equal to 0, greater than 0, or less than 0 - it is simply not known. Be very wary when working with null values.
One instance of a class is referred to as an object. "Poppy" would be an object of class dog, for example.
Short for operation code, which is the term used to describe a unique operation type inside an interpreted language and/or operation types understood by a CPU. Op codes are usually actions, such as adding, subtracting, calling a function, etc.
A value passed into a function for use therein. Also referred to (and used interchangeably with when programming pedants aren't in earshot) "argument"
In US English, the name for the ( and ) symbols. Compare bracket .
To scan through a text document before compilation. The parser in PHP makes sure your script is syntactically valid, whereas the compiler makes sure your script is meaningful - if you forget a semi-colon, it is the parser that complains, whereas if you do not pass enough parameters into a function, it is the compiler that complains.
Portable Document Format. Adobe initiative designed to bring about the paperless office.
PHP Data Objects. New PHP standard extension coming in PHP 5.1 that allows you to access any type of database API through a consistent set of function names. Note that it is not designed to replace PEAR::DB, which also abstracts the different SQL dialects.
The PEAR Extension and Application Repository. Often regarded as the burial ground for unwanted PHP extensions, this reputation is unfounded - there are lots of interesting extensions, and huge amounts of re-usable PHP code, to be found in PEAR.
Name for the | symbol. Use in command-line environments to send data to and from processes.
Text that is yet to be encrypted, and is therefore readable by the application that created it. Compare ciphertext .
Portable Network Graphics. Graphics display format designed when the GIF patent eruption happened, and its designers also took the opportunity to make a number of improvements - PNG has a much larger palette, uses lossless compression, saves smaller files, and has its own alpha channel so that transparency is more than just a matter of selecting the colour not to show.
Logical number that allows computers to run multiple services from the same IP address. HTTP runs on port 80 by default, FTP runs on 21, Telnet on 23, SSH on 22, etc.
HTTP data transfer method that improves on GET by sending the data behind the scenes. As a result, POST can send a great deal more information with a form being submitted, and is therefore suitable for forms that are more complicated. POST also benefits by making it harder for users to send their own information - editing the URL is not possible.
Unique field in a table that uniquely identifies each row. See foreign key .
A variable that does not hold data of its own, but instead points to the data of another variable, referencing that instead.
Most programs work with outward objects, such as databases and files, but reflection is the art of making programs introspect on themselves to reveal data about functions and classes.
Series of letters, numbers, and characters that describe the possible syntax that a given text string must match. Regular expressions, often shortened to regexes, come in millions of shapes and forms, and are notoriously difficult for beginners to read.
PHP variable that refers to an object outside of PHP, such as a MySQL connection or an image.
Special operation mode for PHP that stops scripts from performing various unsafe commands such as executing various functions, changing some values, reading files, etc. Useful for ISPs.
Server Application Programming Interface. SAPIs are designed to allow module developers create plugins for web servers. PHP exists as a SAPI module for several web servers, including Apache, Zeus, and IIS.
Popular name for a PHP file.
Server-side data storage mechanism that uses a unique cookie on clients' machines to identify a data file on the server where information is stored. Compared to cookies, sessions are faster (they do not need to transfer much data each time), safer (users cannot edit their data), and more scalable (session can be transferred to other servers and be of any size). The downside to sessions is that they are automatically closed when the visitor closes their browser. Compare cookie .
Contraction of "sharp" and "bang", the literal first two characters in the first line of a Unix shell script (#!) that specify the command interpreter to be used.
Plain-text, human-readable file containing programming code such as PHP. Source code is fed into a compiler to create compiled code, which may be executable directly or may need to be interpreted.
Standard PHP Library, contains a number of tools that expose complex tasks in simple ways. Not to be confused with SQL.
Structured Query Language, a simple language that allows developers to explain what kind of data they want to extract, and the database that receives the SQL will return the data. SQL can also be used to handle other database functions such as inserting and deleting data, and adding queries.
Not a cut-down version of Structured Query Language as you might expect, but instead this is a simple but powerful flat-file database system that allows quick and easy database usage for local programs. Not recommended for more than a handful of simultaneous users.
In UK English, this is the term for the [ and ] symbols. Compare bracket .
Business logic encapsulated in a function-like style and stored in the database is known as a stored procedure. Stored procedures can be executed simply by typing their name. Some databases (e.g. Oracle) use their own language for stored procedures (such as PL/SQL), where others (e.g. Microsoft's latest SQL Server and, when it is released, the version of MySQL to support stored procedures) allow other languages to be used. Stored procedures have the advantage of being pre-compiled and pre-optimised.
Scalable Vector Graphics. An open standard developed by the W3C to provide a free alternative to Flash. SVG allows the same animated vector graphics that have been so popular in Flash without Flash's inherently proprietary nature.
Term used to describe tautology in programming for the sake of aesthetics. That is, syntactic sugar makes a language "nicer" to use for humans without actually adding any extra power or flexibility. Syntactic sugar is usually easily replaceable with slightly more ugly code that does the same thing. An example of this is objects in PHP 3 and for the large part PHP 4 also, as the OOP system in these versions is simply syntactic sugar for accessing arrays.
Entity in a DBMS that stores precisely one set of data. Each table is made up of fields (the attributes that each item can hold) and rows (the data items themselves). Tables can also include indexes and other meta-information to help the DBMS operate. Each MySQL table can have its own table handler, which makes for a great deal of flexibility.
Informal term meaning a code loop with very few instructions inside. These loops often run many hundreds of thousands of times, and so care should be taken to optimise them as much as possible.
The name for the ~ symbol.
DBMS code to specify what happens when a certain event takes place, e.g. "execute stored procedure ABC whenever a new row is inserted". Triggers allow you to place action-based business logic directly into your database.
TrueType Font, the most common font format in computing today.
Term originating in the Linux community that means "code that is not part of the kernel". In PHP terms, it refers to code implemented in a PHP script as opposed to implemented as part of PHP itself.
A piece of data that may be a number (whole numbers are called integers, whereas numbers such as 1.3 and 45.128213 are referred to as floating-point numbers), a series of characters (string), a true or false value (boolean), a collection of other variables (array), an instance of a class (object), or an external piece of data (resource).
The term popularly used as an abbreviation for the World-Wide Web Consortium, a standards body for web-based interests.
The process of obfuscating plaintext input before encryption takes place, to lessen the likelihood of repeatable and/or guessable patterns being found.
Extensible HyperText Markup Language, a cross between HTML and XML that makes HTML stick to XML's rules while retaining it is display-oriented purpose. For example, all tags must be closed and all attributes must be surrounded in double quotes.
Extensible Markup Language. A simplified form of the Standard Generalized Markup Language (SGML) that can be used to define other languages for custom uses. XML's primary advantage is that it is human-readable and open, which means that files saved in XML can be transported and opened anywhere, making XML the basis of the web services movement.
Extensible Stylesheet Language Transformations, a technology that allows one to mix XML with an XSLT stylesheet to produce a finished document. This can be done on the client-side in compatible clients, but is most commonly done on the server.
The open-source core of the PHP language that handles parsing and execution, as well as a number of the most basic operations such as handling variables, interaction with web servers through SAPIs, garbage collection, and the like.
Want to learn PHP 7?
Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!
If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!
Previous chapter: Optimisation summary
Home: Table of Contents
Copyright ©2015 Paul Hudson. Follow me: @twostraws.