Glossary .NET

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. ADO

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. Angle brackets

The name for the < and > symbols. Array

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. Blog

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. Boolean

A variable that can be either true or false. Defaults to false. Brace

The term for the { and } symbols. Bracket

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 . BSD

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. CGI

The Common Gateway Interface, a standard manner for scripting engines to interact with the web before Apache modules became popular. Ciphertext

Text that has been encrypted. Compare plaintext . Class

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 . CLI

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. COM

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". Compiler

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. Cookie

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 . Copy on write

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. CSS

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. Curl

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, Database

Physical data storage medium that holds multiple data tables. Usually controlled by a DBMS. 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. DCOM

Distributed Component Object Model. Microsoft initiative to make COM available across networks, and allows remote invocation of COM objects and methods. DNS

The Domain Name System. This converts domain names, such as, to a series of machine-readable digits, such as Extension

Compiled add-on to PHP that offers new functionality such as the MySQL extension, which allows you to connect to MySQL databases. Flash

Highly popular Macromedia format and product that is designed to allow animated vector graphics, with sound, to be streamed on the web. Foreign key

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 . Form

Method of user input that allows you to design simple interfaces using HTML. Forms can have text boxes, dropdown boxes, radio buttons, etc. FTP

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. Function

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. Garbage collection

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 Get

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 . GIF

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. GPL

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. GTK

The Gimp Toolkit. The C-based GUI system upon which the GNOME desktop system is written. GUI

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. Hash

Name for the # symbol. Hashing

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. HTML

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. HTTP

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. Index

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. Inheritance

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. JPEG

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. LDAP

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. Lexical analyser

Often just called "lexer". This converts source code into a stream of tokens for use by a parser. Magic function

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

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. Method

The term "method" is often used to mean a function of an object. Normalisation

To normalise a table is to split it up into multiple, more compartmentalised tables based upon a set of rules. Null

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. Object

One instance of a class is referred to as an object. "Poppy" would be an object of class dog, for example. Op code

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. Parameter

A value passed into a function for use therein. Also referred to (and used interchangeably with when programming pedants aren't in earshot) "argument" Parenthesis

In US English, the name for the ( and ) symbols. Compare bracket . Parse

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. PDF

Portable Document Format. Adobe initiative designed to bring about the paperless office. PDO

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. PEAR

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. Pipe

Name for the | symbol. Use in command-line environments to send data to and from processes. Plaintext

Text that is yet to be encrypted, and is therefore readable by the application that created it. Compare ciphertext . PNG

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. Port

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. Post

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. Primary key

Unique field in a table that uniquely identifies each row. See foreign key . Reference

A variable that does not hold data of its own, but instead points to the data of another variable, referencing that instead. Reflection

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. Regular expression

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. Resource

PHP variable that refers to an object outside of PHP, such as a MySQL connection or an image. Safe mode

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. SAPI

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. Script

Popular name for a PHP file. Session

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 . Shebang

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. Source code

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. SPL

Standard PHP Library, contains a number of tools that expose complex tasks in simple ways. Not to be confused with SQL. 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. SQLite

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. Square bracket

In UK English, this is the term for the [ and ] symbols. Compare bracket . Stored procedure

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. SVG

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. Syntactic sugar

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. Table

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. Tight loop

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. Tilde

The name for the ~ symbol. Trigger

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. TTF

TrueType Font, the most common font format in computing today. Userland

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. Variable

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). W3C

The term popularly used as an abbreviation for the World-Wide Web Consortium, a standards body for web-based interests. Whitening

The process of obfuscating plaintext input before encryption takes place, to lessen the likelihood of repeatable and/or guessable patterns being found. XHTML

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. XML

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. XSLT

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. Zend Engine

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.