{"id":162,"date":"2019-04-11T16:38:30","date_gmt":"2019-04-11T14:38:30","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/"},"modified":"2022-07-05T10:45:17","modified_gmt":"2022-07-05T08:45:17","slug":"25-years-of-php-history-and-curiosities-by-rasmus-lerdorf","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/","title":{"rendered":"25 years of PHP: history and curiosities by Rasmus Lerdorf"},"content":{"rendered":"<p>As you probably already know, <strong><span id=\"urn:enhancement-6c3e0fd7\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span><\/strong> is one of the best-known <span id=\"urn:enhancement-fb49934\" class=\"textannotation disambiguated wl-other\">server-side programming<\/span> language used in <span id=\"urn:enhancement-94481ff5\" class=\"textannotation disambiguated wl-other\">web applications<\/span>. Known by a lot of web <span id=\"urn:enhancement-c3f9812d\" class=\"textannotation disambiguated wl-other\">developers<\/span>, it has been appreciated for being intuitive and easy to learn, but also often criticised for some peculiar features incorporated in the design. The creator of <span id=\"urn:enhancement-9f32e16b\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> is <strong>Rasmus Lerdorf<\/strong>, who was invited to deliver a speech during <strong>Codemotion Rome 2019<\/strong>, on the 25th anniversary of the first <span id=\"urn:enhancement-872ec9e3\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> release.<\/p>\n<p>In this article, we will summarise the <strong>origins of <span id=\"urn:enhancement-9b26e3ba\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span><\/strong> and some curious facts about it, inspired by Lerdorf\u2019s stories and facts discussed during his talk.<\/p>\n<p>In order to understand why and how <span id=\"urn:enhancement-f9ef85a6\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> originated in Lerdorf\u2019s mind, it is useful to provide a <span id=\"urn:enhancement-2fdda049\" class=\"textannotation disambiguated wl-other\">bit<\/span> of an overview of the context in which it was born. In the early \u201890s, the Internet was very different from now. Browsers had very limited options and <span id=\"urn:enhancement-f8faec2c\" class=\"textannotation disambiguated wl-other\">developers<\/span> had much fewer options than now to implement <span id=\"urn:enhancement-bd928308\" class=\"textannotation disambiguated wl-other\">web servers<\/span>. Just to give you an example, the following snippet (shown by Lerdorf during his talk) is an example of how a basic <span id=\"urn:enhancement-71eabd13\" class=\"textannotation disambiguated wl-other\">web server<\/span> was written using <span id=\"urn:enhancement-c0f9e670\" class=\"textannotation disambiguated wl-other\">C<\/span> in 1993:<\/p>\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/QkuaUBqg\"><\/script><\/p>\n<p>As you can see, building a page required writing low level code and to output both content and headers line by line. Moreover, using <span id=\"urn:enhancement-f0f93863\" class=\"textannotation disambiguated wl-other\">C<\/span> produced long code snippets for doing something quite simple, eg. returning a web page as a response of a <span id=\"urn:enhancement-5077e724\" class=\"textannotation disambiguated wl-other\">HTTP request<\/span>. There were other <span id=\"urn:enhancement-500b3c38\" class=\"textannotation disambiguated wl-other\">programming languages<\/span> more compact and still powerful (as shown by the <span id=\"urn:enhancement-853a1250\" class=\"textannotation disambiguated wl-creative-work\">Perl<\/span> snippet below) but such solutions still did not solve a basic problem: the possibility of <strong>separating content presentation from the other server <span id=\"urn:enhancement-aeadd57f\" class=\"textannotation disambiguated wl-other\">business logic<\/span><\/strong> (particularly request and response processing).<\/p>\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/dDUHGr9G\"><\/script><\/p>\n<p>To solve the problem of content separation, Lerdorf decided to develop <span id=\"urn:enhancement-f5609348\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span>, releasing its first version in 1995. His idea was clear: using it as a <strong>templating language<\/strong>, where you can embed little snippets just to show outputs of functions or values saved in variables, while the rest of the server-side <span id=\"urn:enhancement-85de2ced\" class=\"textannotation disambiguated wl-other\">business logic<\/span> could continue to be implemented in separated <strong><span id=\"urn:enhancement-33a8250b\" class=\"textannotation disambiguated wl-other\">CGI<\/span><\/strong>.<br \/>For more clarity, the following snippets represent what Lerdorf expected to be the common use of <span id=\"urn:enhancement-1258fdd3\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span>. Basically, the idea was to have a <strong>C <span id=\"urn:enhancement-9e627454\" class=\"textannotation disambiguated wl-other\">API<\/span> for web<\/strong>, allowing us to do something like this:<\/p>\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/QRwkbdqx\"><\/script><\/p>\n<p>And then, <span id=\"urn:enhancement-17ca1916\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> served as a templating language, embedding functions or <span id=\"urn:enhancement-1aac5d4c\" class=\"textannotation disambiguated wl-other\">variables<\/span> defined in <span id=\"urn:enhancement-4560493b\" class=\"textannotation disambiguated wl-other\">C<\/span> directly in the middle of <span id=\"urn:enhancement-71127c90\" class=\"textannotation disambiguated wl-other\">HTML<\/span>:<\/p>\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/GEpmTwmK\"><\/script><\/p>\n<p>You might think that this is quite different from what we usually do with <span id=\"urn:enhancement-f09fecbd\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span>. Indeed, today <span id=\"urn:enhancement-891bf177\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> has the form of a fully-working <span id=\"urn:enhancement-a3656690\" class=\"textannotation disambiguated wl-other\">programming language<\/span>, with no need of using C <span id=\"urn:enhancement-6950a0e3\" class=\"textannotation disambiguated wl-other\">API<\/span>. The original goal of separating presentation from <span id=\"urn:enhancement-2bc6a965\" class=\"textannotation disambiguated wl-other\">server<\/span> <span id=\"urn:enhancement-c508d520\" class=\"textannotation disambiguated wl-other\">business logic<\/span> is often misunderstood, or ignored. Lerdorf explained that his initial idea has been rejected by most people, although he often tried to explain his original position. He finally surrendered to this in 1999, when <span id=\"urn:enhancement-29743cca\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> was already supported (and used) from a plethora of ISP.<\/p>\n<p>After its official release, <span id=\"urn:enhancement-307d66d\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> has become the popular language we know. But this was also due to many other things built all around it. Probably the most important innovation due to <span id=\"urn:enhancement-5fa9c064\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> is represented by the <strong><span id=\"urn:enhancement-11cc434c\" class=\"textannotation disambiguated wl-other\">LAMP<\/span><\/strong> stack, which originally meant <span id=\"urn:enhancement-a47d09ec\" class=\"textannotation disambiguated wl-creative-work\">Linux<\/span>, <span id=\"urn:enhancement-3212dd63\" class=\"textannotation disambiguated wl-creative-work\">Apache<\/span>, mSQL and <span id=\"urn:enhancement-5e581b10\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span>, since <span id=\"urn:enhancement-4f352746\" class=\"textannotation disambiguated wl-other\">MySQL<\/span> was not yet ready. mSQL was a very simple <span id=\"urn:enhancement-de0f4646\" class=\"textannotation disambiguated wl-other\">RDBMS<\/span>, which was included in the original idea exactly for its simplicity, but then replaced when <span id=\"urn:enhancement-3e8c979c\" class=\"textannotation disambiguated wl-other\">servers<\/span> required more advanced features.<\/p>\n<p>Today, <span id=\"urn:enhancement-ef708464\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> is widely used in many websites and <span id=\"urn:enhancement-d1ab76ee\" class=\"textannotation disambiguated wl-other\">applications<\/span>, such as <span id=\"urn:enhancement-54237370\" class=\"textannotation disambiguated wl-creative-work\">Wikipedia<\/span> and <span id=\"urn:enhancement-13724829\" class=\"textannotation disambiguated wl-creative-work\">WordPress<\/span>, to name but a few.<\/p>\n<p>Before ending with this article, it is worth mentioning a couple of interesting facts and remarks told by Lerdorf during his talk.<\/p>\n<p>First, he mentioned some problems often considered <strong>bad design choices of <span id=\"urn:enhancement-e4c409e4\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span><\/strong>. He started discussing the choice of using <strong>case insensitive function names<\/strong>, explaining it with the original idea of content separation Since they needed to be included in a templating language like <span id=\"urn:enhancement-6ea137d1\" class=\"textannotation disambiguated wl-other\">HTML<\/span> (which is case insensitive), he designed the <span id=\"urn:enhancement-566ac2e3\" class=\"textannotation disambiguated wl-other\">API<\/span> (and thus the resulting language) for being case insensitive in function names.<\/p>\n<p>Another issue analysed was the <strong>naming inconsistencies<\/strong>, which Lerdorf explained as simply due to the different conventions in the context where <span id=\"urn:enhancement-b320c44d\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> was developed. More generally, most of these issues may indeed been explained by the <strong>context<\/strong> where <span id=\"urn:enhancement-93ba04b\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span> was developed, at the beginning of the <span id=\"urn:enhancement-1313ce68\" class=\"textannotation disambiguated wl-other\">Internet<\/span> and with many things evolving quickly.<\/p>\n<p>Finally, Lerdorf highlighted the importance of working on things that matter and always have a sense of purpose in our everyday life. He says he does not consider himself as a good programmer, but instead a dreamer. And his dreams have become true not just because of his programming skills, but instead because of his sense of purpose, his desire of trying and making new things. We often focus on being great <span id=\"urn:enhancement-e54d2856\" class=\"textannotation disambiguated wl-other\">developers<\/span>, learning every single feature of our preferred <span id=\"urn:enhancement-bf8426b\" class=\"textannotation disambiguated wl-other\">programming language<\/span>. Perhaps working on our goals is the key to drive us to new challenges, discover new passions and thus &#8211; maybe &#8211; developing another (better) <span id=\"urn:enhancement-2450a7f\" class=\"textannotation disambiguated wl-creative-work\">PHP<\/span>.<\/p>\n\n\n<p><em>Read <a href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/web-developer\/php-for-web-development-in-2022-dead-alive-or-missing-in-action\/\" target=\"_blank\" aria-label=\"more about PHP (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">more about PHP<\/a> here<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you probably already know, PHP is one of the best-known server-side programming language used in web applications. Known by a lot of web developers, it has been appreciated for being intuitive and easy to learn, but also often criticised for some peculiar features incorporated in the design. The creator of PHP is Rasmus Lerdorf,&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":163,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[20],"tags":[4,65],"collections":[],"class_list":{"0":"post-162","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-languages","8":"tag-codemotion-rome","9":"tag-php","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>25 years of PHP: history and curiosities by Rasmus Lerdorf - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"25 years of PHP: history and curiosities by Rasmus Lerdorf\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"25 years of PHP: history and curiosities by Rasmus Lerdorf\" \/>\n<meta property=\"og:description\" content=\"25 years of PHP: history and curiosities by Rasmus Lerdorf\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-11T14:38:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-05T08:45:17+00:00\" \/>\n<meta name=\"author\" content=\"Vito Gentile\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@ViGentile\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vito Gentile\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\"},\"author\":{\"name\":\"Vito Gentile\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\"},\"headline\":\"25 years of PHP: history and curiosities by Rasmus Lerdorf\",\"datePublished\":\"2019-04-11T14:38:30+00:00\",\"dateModified\":\"2022-07-05T08:45:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\"},\"wordCount\":842,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg\",\"keywords\":[\"Codemotion Rome\",\"PHP\"],\"articleSection\":[\"Languages and frameworks\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\",\"name\":\"25 years of PHP: history and curiosities by Rasmus Lerdorf - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg\",\"datePublished\":\"2019-04-11T14:38:30+00:00\",\"dateModified\":\"2022-07-05T08:45:17+00:00\",\"description\":\"25 years of PHP: history and curiosities by Rasmus Lerdorf\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg\",\"width\":1013,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"25 years of PHP: history and curiosities by Rasmus Lerdorf\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\",\"name\":\"Vito Gentile\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"caption\":\"Vito Gentile\"},\"description\":\"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!\",\"sameAs\":[\"https:\/\/vitogentile.it\",\"https:\/\/www.linkedin.com\/in\/vitogentile\/en\",\"https:\/\/x.com\/ViGentile\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"25 years of PHP: history and curiosities by Rasmus Lerdorf - Codemotion Magazine","description":"25 years of PHP: history and curiosities by Rasmus Lerdorf","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/","og_locale":"en_US","og_type":"article","og_title":"25 years of PHP: history and curiosities by Rasmus Lerdorf","og_description":"25 years of PHP: history and curiosities by Rasmus Lerdorf","og_url":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-04-11T14:38:30+00:00","article_modified_time":"2022-07-05T08:45:17+00:00","author":"Vito Gentile","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg","twitter_creator":"@ViGentile","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Vito Gentile","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/"},"author":{"name":"Vito Gentile","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313"},"headline":"25 years of PHP: history and curiosities by Rasmus Lerdorf","datePublished":"2019-04-11T14:38:30+00:00","dateModified":"2022-07-05T08:45:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/"},"wordCount":842,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg","keywords":["Codemotion Rome","PHP"],"articleSection":["Languages and frameworks"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/","url":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/","name":"25 years of PHP: history and curiosities by Rasmus Lerdorf - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg","datePublished":"2019-04-11T14:38:30+00:00","dateModified":"2022-07-05T08:45:17+00:00","description":"25 years of PHP: history and curiosities by Rasmus Lerdorf","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg","width":1013,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/languages\/25-years-of-php-history-and-curiosities-by-rasmus-lerdorf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"25 years of PHP: history and curiosities by Rasmus Lerdorf"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313","name":"Vito Gentile","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","caption":"Vito Gentile"},"description":"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!","sameAs":["https:\/\/vitogentile.it","https:\/\/www.linkedin.com\/in\/vitogentile\/en","https:\/\/x.com\/ViGentile"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-600x600.jpg","author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg",1013,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg",1013,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg",1013,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg",1013,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/04\/54521358_2364259310263030_834556718783397888_o-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_comment_info":1,"uagb_excerpt":"As you probably already know, PHP is one of the best-known server-side programming language used in web applications. Known by a lot of web developers, it has been appreciated for being intuitive and easy to learn, but also often criticised for some peculiar features incorporated in the design. The creator of PHP is Rasmus Lerdorf,&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=162"}],"version-history":[{"count":4,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/162\/revisions"}],"predecessor-version":[{"id":18199,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/162\/revisions\/18199"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/163"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=162"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}