{"id":165,"date":"2018-07-30T22:06:09","date_gmt":"2018-07-30T22:06:09","guid":{"rendered":"http:\/\/www.projectimmerse.com\/?p=165"},"modified":"2020-06-17T02:13:29","modified_gmt":"2020-06-17T02:13:29","slug":"the-php-7-story","status":"publish","type":"post","link":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/","title":{"rendered":"The PHP 7 Story"},"content":{"rendered":"<p>I&#8217;ve been craving me some <a href=\"http:\/\/www.php.net\/\" title=\"PHP\">PHP<\/a> lately, not PHP code per se &#8211; I code in PHP on the daily. PHP was my first programming language &#8211; I fell for PHP the moment I saw it&#8217;s power, its force. <\/p>\n<p>So this post is titled &#8220;The PHP 7 Story&#8221;, it sounded so cool. I&#8217;d like to give ALL the credit to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Zeev_Suraski\" title=\"Zeev Suraski\">Zeev Suraski<\/a> for inspiring me to write this post. Yeah I didn&#8217;t know who this dude was either. I mean you probably know who &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Rasmus_Lerdorf\" title=\"Rasmus Lerdorf\">Rasmus Lerdorf<\/a>&#8221; is if you&#8217;ve been programming in PHP a long while. So if Rasmus is the god of PHP, Zeev would be the demi god of PHP. Zeev gave a speech in Barcelona back in 2015 &#8211; yeah I&#8217;m so late to the conference attending game. My friends tell me I should get out and travel, makes me feel like a sheltered programmer but being a programmer is unlike any other profession or craft. Programming is within itself a traveling experience &#8211; yeah even time travel, anything is possible in the virtual world. Whoa I just felt like Neo from the matrix.<\/p>\n<p><!--more--><\/p>\n<p>Ok this post is really based on this video &#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=c5285TuNups\" tite=\"The PHP7 Story\">Zeev Suraski &#8211; The PHP7 Story<\/a>, hence the name. Sometimes when I explore or reflect on programming languages I like learning about who wrote it. I&#8217;ll probably create another post dedicated to Rasmus Lerdorf but for now it&#8217;s about &#8220;The PHP 7 Story&#8221; &#8211; yeah I know what you were thinking, &#8220;Star Wars&#8221;. Yeah, I know &#8211; EPIC.<\/p>\n<h2>PHP is a popular language<\/h2>\n<p>Yes, PHP is a popular language &#8211; it once powered <a href=\"https:\/\/myspace.com\/\" title=\"MySpace\">MySpace (not sure if it still does)<\/a>, <a href=\"https:\/\/www.wikipedia.org\/\" title=\"Wikipedia\">Wikipedia<\/a> and <a href=\"https:\/\/www.facebook.com\/\" title=\"Facebook\">Facebook<\/a>. It powers CMS platforms &#8211; <a href=\"https:\/\/wordpress.org\/\" title=\"Wordpress\">WordPress<\/a>, <a href=\"https:\/\/www.squarespace.com\/\" title=\"SquareSpace\">SquareSpace (just a wild guess)<\/a> and most of the websites we see today. If you&#8217;re a developer then you know about <a href=\"https:\/\/laravel.com\/\" title=\"Laravel\">Laravel<\/a>, <a href=\"https:\/\/symfony.com\/\" title=\"Symfony\">Symfony<\/a> and <a href=\"https:\/\/codeigniter.com\/\" title=\"CodeIgniter\">CodeIgniter<\/a> and friends &#8211; oh yeah and <a href=\"http:\/\/www.zend.com\/\" title=\"Zend\">Zend<\/a>, that would&#8217;ve been a huge shame not to list Zend. These are some killer PHP Frameworks they would eat up most of the node frameworks for breakfast that exist today in my opinion. Sorry Angular, React and friends. Except for Vue.js &#8211; I kinda like you.<\/p>\n<p>First some core notes from the video in timeline fashion:<\/p>\n<h3>PHP 3<\/h3>\n<ul>\n<li>Released in June 1998<\/li>\n<li>Introduction of extensions<\/li>\n<li>Although token cache was available, still neededed to manually loop through data (a lot of times) so this was very inefficient<\/lil>\n<\/ul>\n<h3>PHP 4<\/h3>\n<ul>\n<li>Released May 2000<\/li>\n<li>Modularity &#8211; introduced new plugins, debuggers and more importantly the abstraction of the web server layer. Support for additional web servers &#8211; Netscape, Fast CGI and Microsoft IIS.\n<li>Downward compatibility<\/li>\n<li>Sessions<\/li>\n<li>Introduction of the Zend engine &#8211; this was more efficient than PHP 3&#8217;s looping method. The Zend engine (1) Compiled code, (2)Converted code into in-memory execution code then (3) finally executed.\n<\/ul>\n<h3>PHP 5<\/h3>\n<ul>\n<li>New &#8220;True&#8221; object model (yes!)<\/li>\n<li>Destructors<\/li>\n<li>Exception Handling (I need to use this more)<\/li>\n<li>And if you have a super high appreciation for architecture like I do then these two features matter a lot:\n<ul>\n<li>Ben thankful its not slower<\/li>\n<li>Seeds were sown<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>PHP 6<\/h3>\n<p>The premise behind PHP 6 is as follows:<\/p>\n<blockquote><p>\nPHP 6 = PHP 5 + Unicode<\/p>\n<p>The <a href=\"http:\/\/unicode.org\/standard\/WhatIsUnicode.html\" title=\"Unicode Standard\">Unicode Standard<\/a> provides a unique number for every character, no matter what platform, device, application or language.\n<\/p><\/blockquote>\n<p>This was great it allowed for Unicode to behave like first class citizens without additional API support &#8211; I didn&#8217;t know this. PHP 6 was the version I was most familiar with, I probably wrote more code in this version more than any other version. Thank you Zeev for informing me about this. There were some major performance issues resulting from this Unicode upgrade. So this was all great but&#8230;<\/p>\n<ul>\n<li>PHP 6 was a lot worse than PHP 5!?<\/li>\n<li>Memory consumption was bad!?<\/li>\n<li><a href=\"http:\/\/bit.ly\/php6whathappened\" title=\"PHP 6 What happened\">PHP 6 What Happened<\/a> &#8211; if you&#8217;re interested in diving in deeper about what happened to PHP 6.<\/li>\n<\/ul>\n<p>So this keep ringing in my head&#8230;<\/p>\n<blockquote><p>\nPerformance, performance, performance\n<\/p><\/blockquote>\n<p>Been coding in PHP 6 for a very long time &#8211; this makes me feel a little enlightened actually. I think I&#8217;ve switched over most of my projects to PHP 7 so I&#8217;m relieved about that. If you haven&#8217;t switched over &#8211; yeah switch over ASAP.<\/p>\n<p>Ok so fast forward to PHP 7&#8230;<\/p>\n<h2>PHP 7<\/h2>\n<p>So here&#8217;s the PHP 7 story&#8230;<\/p>\n<ul>\n<li>Research PHP + <a href=\"https:\/\/en.wikipedia.org\/wiki\/Just-in-time_compilation\" title=\"Just-in-time compilation\">JIT<\/a> begins led by Dmitry Stogov &#8211; JIT did well on synthetic benchmarks<\/li>\n<li>The result &#8211; no performance gains realized for rea world applications. Why? Memory consumption<\/li>\n<li>Back to the drawing board, the PHP team got some help from Intel, yeah CPU processing was getting hit hard with JIT. Had to do away with JIT.\n<li>So the main goal with PHP 7 was performance &#8211; no new features, no nothing.<\/li>\n<\/ul>\n<h3>Birth of PHPNG &#8211; PHP Next Generation<\/h3>\n<ul>\n<li>Alternative PHP Cache (APC)<\/li>\n<li>Zend OPCache<\/li>\n<li>PHP still not JIT<\/li>\n<\/ul>\n<p>I had to actually take a screenshot straight from the video itself for a better visual despite the crappy resolution.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.projectimmerse.com\/wp-content\/uploads\/2018\/07\/php-difference.png\" alt=\"\" width=\"734\" height=\"418\" class=\"aligncenter size-full wp-image-173\" srcset=\"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/php-difference.png 734w, https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/php-difference-300x171.png 300w, https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/php-difference-80x46.png 80w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/p>\n<p>Yeah major performance gains in PHP 7.<\/p>\n<p>I was going to skip this part partly because this was more about my notes and thoughts about Zeev and the PHP 7 story. But I can&#8217;t help imagine how much hard work they put into PHP 7 in adding these new additional features I&#8217;ll list below. These guys nerded out, late nights, coffee, hack nights. Mad respect to your hustle guys and gals.<\/p>\n<h2>Engine Exceptions<\/h2>\n<p>Many E_ERRORS and E_RECOVERABLE_ERRORS are now exceptions.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\ntry {\r\n\r\n  call_method(null); \/\/ oops\r\n\r\n} catch (EngineException $e) {\r\n\r\n  echo &quot;Exception: {\r\n    $e-&gt;getMessage()\r\n  }\\n}\r\n}\r\n\r\n<\/pre>\n<h2>Return Type Declarations &#038; Scalar Type Hints<\/h2>\n<h3>Declare type of return value functions<\/h3>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n&lt;?php\r\n\r\nfunction foobar(): int {\r\n\r\n  return 1.0;\r\n\r\n}\r\n\r\n?&gt;\r\n<\/pre>\n<h3>New Scalar Type Hints: In two flavors<\/h3>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n&lt;?php\r\n\r\nfunction add (int $a, int $b): int {\r\n  \r\n  return $a + $b;\r\n\r\n}\r\n\r\n?&gt;\r\n\r\n<\/pre>\n<h2>Zero Cost assert() (expectations)<\/h2>\n<p>Basically can configure PHP so that assertions don&#8217;t incur any penalties in both development and production. Assert is now a language level construct instead of just a function. Faster and easier to use.<\/p>\n<h2>Filtered Unserialize<\/h2>\n<p>Filter the instantiation of objects<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n\/\/ Supress all classes\r\n$data = unserialize($foo, &#x5B;&quot;allowed_classes&quot;=&gt;false]);\r\n\r\n\/\/ Allow only MyClass and MyClass2\r\n$data = unserialize($foo, &#x5B;&quot;allowed_classes =&gt; &#x5B;&quot;MyClass&quot;, &quot;MyClass2&quot;];\r\n\r\n\/\/ Allow all classes\r\n$data = unserialize($foo, &#x5B;&quot;allowed_classes&quot;=&gt;true]);\r\n\r\n<\/pre>\n<h2>The Spaceship Operator<\/h2>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n$x &lt;=&gt; $y\r\n\r\n<\/pre>\n<h2>Uniform Variable Syntax<\/h2>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n($foo-&gt;$bar)&#x5B;'baz']\r\n\r\n<\/pre>\n<h2>The Null Coalesce operator<\/h2>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n($x ?? $y) ~= ($x ? $x : $y) &lt;----- ternary operator\r\n\r\n<\/pre>\n<p>To conclude Zeev makes a final statement that PHP 7 isn&#8217;t about 1 person or 50 people, PHP 7 is built atop a community. So keep coding, keep hacking. <\/p>\n<p>Random thought &#8211; I&#8217;d really like to attend one of these conferences in Barcelona. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been craving me some PHP lately, not PHP code per se &#8211; I code in PHP on the daily. PHP was my first programming language &#8211; I fell for PHP the moment I saw it&#8217;s power, its force. So this post is titled &#8220;The PHP 7 Story&#8221;, it sounded so cool. I&#8217;d like to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The PHP 7 Story&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1129,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-165","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The PHP 7 Story - Project Immerse<\/title>\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.projectimmerse.com\/blog\/the-php-7-story\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The PHP 7 Story - Project Immerse\" \/>\n<meta property=\"og:description\" content=\"I&#8217;ve been craving me some PHP lately, not PHP code per se &#8211; I code in PHP on the daily. PHP was my first programming language &#8211; I fell for PHP the moment I saw it&#8217;s power, its force. So this post is titled &#8220;The PHP 7 Story&#8221;, it sounded so cool. I&#8217;d like to &hellip; Continue reading &quot;The PHP 7 Story&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/\" \/>\n<meta property=\"og:site_name\" content=\"Project Immerse\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-30T22:06:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-17T02:13:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"projectimmerse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"projectimmerse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/\"},\"author\":{\"name\":\"projectimmerse\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/#\\\/schema\\\/person\\\/c53f2864be524ee6fa08a7e4800dd1e5\"},\"headline\":\"The PHP 7 Story\",\"datePublished\":\"2018-07-30T22:06:09+00:00\",\"dateModified\":\"2020-06-17T02:13:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/\"},\"wordCount\":1129,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/the-php-7-story-rasmus-lerdorf.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/\",\"url\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/\",\"name\":\"The PHP 7 Story - Project Immerse\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/the-php-7-story-rasmus-lerdorf.png\",\"datePublished\":\"2018-07-30T22:06:09+00:00\",\"dateModified\":\"2020-06-17T02:13:29+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/#\\\/schema\\\/person\\\/c53f2864be524ee6fa08a7e4800dd1e5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/the-php-7-story-rasmus-lerdorf.png\",\"contentUrl\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/the-php-7-story-rasmus-lerdorf.png\",\"width\":750,\"height\":750,\"caption\":\"The PHP 7 Story - Rasmus Lerdorf\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/the-php-7-story\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The PHP 7 Story\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/\",\"name\":\"Project Immerse\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/#\\\/schema\\\/person\\\/c53f2864be524ee6fa08a7e4800dd1e5\",\"name\":\"projectimmerse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g\",\"caption\":\"projectimmerse\"},\"url\":\"https:\\\/\\\/www.projectimmerse.com\\\/blog\\\/author\\\/projectimmerse\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The PHP 7 Story - Project Immerse","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.projectimmerse.com\/blog\/the-php-7-story\/","og_locale":"en_US","og_type":"article","og_title":"The PHP 7 Story - Project Immerse","og_description":"I&#8217;ve been craving me some PHP lately, not PHP code per se &#8211; I code in PHP on the daily. PHP was my first programming language &#8211; I fell for PHP the moment I saw it&#8217;s power, its force. So this post is titled &#8220;The PHP 7 Story&#8221;, it sounded so cool. I&#8217;d like to &hellip; Continue reading \"The PHP 7 Story\"","og_url":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/","og_site_name":"Project Immerse","article_published_time":"2018-07-30T22:06:09+00:00","article_modified_time":"2020-06-17T02:13:29+00:00","og_image":[{"width":750,"height":750,"url":"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png","type":"image\/png"}],"author":"projectimmerse","twitter_card":"summary_large_image","twitter_misc":{"Written by":"projectimmerse","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#article","isPartOf":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/"},"author":{"name":"projectimmerse","@id":"https:\/\/www.projectimmerse.com\/blog\/#\/schema\/person\/c53f2864be524ee6fa08a7e4800dd1e5"},"headline":"The PHP 7 Story","datePublished":"2018-07-30T22:06:09+00:00","dateModified":"2020-06-17T02:13:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/"},"wordCount":1129,"commentCount":0,"image":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#primaryimage"},"thumbnailUrl":"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/","url":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/","name":"The PHP 7 Story - Project Immerse","isPartOf":{"@id":"https:\/\/www.projectimmerse.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#primaryimage"},"image":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#primaryimage"},"thumbnailUrl":"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png","datePublished":"2018-07-30T22:06:09+00:00","dateModified":"2020-06-17T02:13:29+00:00","author":{"@id":"https:\/\/www.projectimmerse.com\/blog\/#\/schema\/person\/c53f2864be524ee6fa08a7e4800dd1e5"},"breadcrumb":{"@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#primaryimage","url":"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png","contentUrl":"https:\/\/www.projectimmerse.com\/blog\/wp-content\/uploads\/2018\/07\/the-php-7-story-rasmus-lerdorf.png","width":750,"height":750,"caption":"The PHP 7 Story - Rasmus Lerdorf"},{"@type":"BreadcrumbList","@id":"https:\/\/www.projectimmerse.com\/blog\/the-php-7-story\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.projectimmerse.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The PHP 7 Story"}]},{"@type":"WebSite","@id":"https:\/\/www.projectimmerse.com\/blog\/#website","url":"https:\/\/www.projectimmerse.com\/blog\/","name":"Project Immerse","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.projectimmerse.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.projectimmerse.com\/blog\/#\/schema\/person\/c53f2864be524ee6fa08a7e4800dd1e5","name":"projectimmerse","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d06955033d6227bfdcf30014e457e4334f7deeb73907de49b65ec2484921931?s=96&d=mm&r=g","caption":"projectimmerse"},"url":"https:\/\/www.projectimmerse.com\/blog\/author\/projectimmerse\/"}]}},"_links":{"self":[{"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":21,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions\/464"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/media\/1129"}],"wp:attachment":[{"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/media?parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/categories?post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.projectimmerse.com\/blog\/wp-json\/wp\/v2\/tags?post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}