com presentations: .: mx14.html slides/intro/php7.xml

[email protected] (Rasmus Lerdorf)
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    02b9a62a928ec6d3989a213abc3f74353bc29e21
Author:    Rasmus Lerdorf <[email protected]>         Tue, 23 Sep 2014 21:56:22 -0700
Parents:   8f30bba609b637c12bcdfb2b8b48541af8ad5baa
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=02b9a62a928ec6d3989a213abc3f74353bc29e21

Log:
.

Changed paths:
  M  mx14.html
  M  slides/intro/php7.xml


Diff:
diff --git a/mx14.html b/mx14.html
index bf99a7b..430ef95 100644
--- a/mx14.html
+++ b/mx14.html
@@ -448,8 +448,44 @@ footer();</code></pre>
 		<h4 class="p">✔ Abstract Syntax Tree</h4>
 		<h4 class="p">✔ 64-bit integer support on Windows</h4>
 		<h4 class="p">✔ Catchable "call to member function of non-object"</h4>
+		</section>
+<section id="php7UVS">
+		<h4 class="p">✔ Uniform variable syntax</h4>
+		<pre><code>// support missing combinations of operations
+$foo()['bar']()
+[$obj1, $obj2][0]-&gt;prop
+getStr(){0}
+ 
+// support nested ::
+$foo['bar']::$baz
+$foo::$bar::$baz
+$foo-&gt;bar()::baz()
+ 
+// support nested ()
+foo()()
+$foo-&gt;bar()()
+Foo::bar()()
+$foo()()
+ 
+// support operations on arbitrary (...) expressions
+(...)['foo']
+(...)-&gt;foo
+(...)-&gt;foo()
+(...)::$foo
+(...)::foo()
+(...)()
+ 
+// two more practical examples for the last point
+(function() { ... })()
+($obj-&gt;closure)()
+ 
+// support all operations on dereferencable scalars
+// (not very useful)
+&quot;string&quot;-&gt;toLower()
+[$obj, 'method']()
+'Foo'::$bar</code></pre>
 		<h4 class="p"> </h4>
-		<p class="p">Still very early. Many more things could be added </p>
+		<p class="p">Still very early. Many more things will likely be added</p>
 		</section>	</section>
 	<section>
 		<img src="/presentations/slides/intro/lovehack-white-1000.png" width="1001" height="421">
diff --git a/slides/intro/php7.xml b/slides/intro/php7.xml
index d1af2bd..2313710 100644
--- a/slides/intro/php7.xml
+++ b/slides/intro/php7.xml
@@ -15,7 +15,46 @@
 
 <blurb fontsize="4em">✔ Catchable &quot;call to member function of non-object&quot;</blurb>
 
+<break lines="1" section="php7UVS"/>
+
+<blurb fontsize="4em">✔ Uniform variable syntax</blurb>
+
+<example fontsize="2em" marginleft="7em" result='0' title=""><![CDATA[<?php
+// support missing combinations of operations
+$foo()['bar']()
+[$obj1, $obj2][0]->prop
+getStr(){0}
+ 
+// support nested ::
+$foo['bar']::$baz
+$foo::$bar::$baz
+$foo->bar()::baz()
+ 
+// support nested ()
+foo()()
+$foo->bar()()
+Foo::bar()()
+$foo()()
+ 
+// support operations on arbitrary (...) expressions
+(...)['foo']
+(...)->foo
+(...)->foo()
+(...)::$foo
+(...)::foo()
+(...)()
+ 
+// two more practical examples for the last point
+(function() { ... })()
+($obj->closure)()
+ 
+// support all operations on dereferencable scalars
+// (not very useful)
+"string"->toLower()
+[$obj, 'method']()
+'Foo'::$bar]]></example>
+
 <blurb fontsize="4em"> </blurb>
 
-<blurb fontsize="3em">Still very early. Many more things could be added </blurb>
+<blurb fontsize="3em">Still very early. Many more things will likely be added</blurb>
 </slide>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.