 at the like the first If this this was going to happen all the phv versions and all the talk so it's going to come up Yeah, so php7 is here army of you have like heard about it Good Okay So So about php versions These are the versions that are like these are the status of the versions 5.4 secured fix only 5.5 nearly dead 5.6 currently can't like the stable version Six abandoned That's a so I'll get to that Yeah, so about I just brought this up because all of you guys were interested about the like the php Kind of the release process So the php release process is when something comes up It will stay about three years Two years bug fixes and a year of secured fixes only so when a major version comes up It's a it's a backward incompatible thing And and major versions also like give new features and stuff so if you want to do some impact Compatible stuff with a Minor version you actually can't so you need to wait till something the major version comes up So yeah, this is this is the the current thing It was like noted down So this is the expected now, so I guess you guys have a there's like lots of discussion So anybody knows like the process about how like stuff get done in php kind of so Like I so so when you have something either a new feature Unless it's like a bug fix is if it's a new feature or Like some major problems or like a policy fix then you need to like somebody puts an RFC Request for comments and then it gets discussed for two weeks and then it goes into voting and Then it gets voted for like two weeks So the whole voting process is also there's an RFC for the voting process as well can go read it up so php voting members are like Who people who have like dotnet ph at php.net email address Yeah There's like lots of details about it. This is not relevant to php 7 actually So, yeah, what was I actually going to talk about today? Yeah, so PhD sir. So you guys are probably asking what happened like php 6 So there's like lots of rumors about it like somebody deleted the branch So As as usual you have a RFC for that Saying why it should be named php 7 and not 6 like people actually wrote books about Php 6 before like it actually came out here. So, yeah, you have like nice things about about evil Book authors and stuff that that goes around here. Yeah So it got got voted in most of the stuff like this like requires a two-third like fifth Yeah, so what's the actual reasons? So because Php 6 couldn't be like used it was about like it was an issue with Unicode stuff. They were trying to introduce Unicode and to all like functions Yeah, yeah, exactly. So yeah, there was a project underway for php 7 that people are like working on and that like didn't work out Well, so they all the like the stuff been into 5.5 I think They've back-ported everything like to become that way. There is like lots of details about it here Go you can read it up and you can read the php 6 book also. I guess You want? Yeah, so php 7 is out like the RC 1 Is out. I think they'll keep on so we'll like The number of RCs depends on like the stuff that comes up They use that comes up with the users and stuff So please do test it out and like post comments on bugs on the mailing list So I think it should be the stable version should be out in September not September According to timeline. So there's there's a RC for the timeline also you want. Yeah, so major features I think so PHP 7 comes up comes with the engine 3 PHP 5 and stuff is like send engine 2 It has a jit compiling and Abstract syntax tree previously it was just passing and then up code now It's passing abstract syntax tree and then up codes. So you can do like Optimizations on the trees and stuff You also have like people There's a there's a good talk on this on on the difference between like Zen engine 3 and like HHVM And all the all the other like compilers by Anthony Ferrara. It's on YouTube. You can check it out It he goes into like much detail about like all the stuff in Lexing and all the stuff that you need to know about Zen engine 3 and Yeah, so So because of this PHP is like supposed to be like really fast 7 is really supposed to be really fast and like being able to battle with like HHVM which like almost binary I guess At some point, so that's good So this is the Zen engines Zen's Benchmarking so you can see like they Good Performance between HHVM and PHP 7 It's a problem. It's Definitely better than any other PHP version But the now the new kidding Kid is HHVM. So, yeah That's that I'm like there's there's lots of benchmarks going around like some shows HHVM up It's it's all around the place, you know, like benchmarking 5.6 Yeah And HHVM and 5.7 So there's lots of you can go around and there's lots of stuff about benchmarking I don't get into Yeah, so the other new very important feature I think like for PHP developers is like Skeeter type declarations So So type declarations, right? so I'm Probably people have like worked in like static Languages like Java Stuff because like PHP is dynamically typed for a very like from the beginning itself it was dynamically typed and because of that like You have like a performance it because of that because you don't know like the types and because of you Don't because you don't know the types you cannot actually do some optimization on those so because of that You had like issues So this is this is so there was like this was a like a major. I guess this was like a major issue And in in terms of like a male threads going around like Like so it it went up like five Versions of the RFC to actually get one properly done So it was not like done hastily like people doing it. It was like being worked on for some time So like the the one person actually quit contributing also because of this And like you could see if you like go back and look at all the main English there was like a lot of shouting around Lots of expensive stuff can imagine so So what they came up with is it like a dual system like like being ever being strict and like weak at the same time and you have the ability to like Change that so No, so so so that's that's also done like You can it can be in variable equals now. So if it's If it's you don't get that time It can be a it can be now Just give me a second So It's it's mostly about like the being like dynamic I guess Because I you know PHP you can do like crazy stuff and but though we actually people say it's dynamic type It's actually not dynamic type internally. It's all it's either it just in change the state It says okay, this is a ink now. This is a string now The point is that when they're using scalar types is Not an acceptable value for that If it's an entire Yeah, so Nully is actually undefined basically When it comes down to yeah, Nully is undefined Okay, that should not be undefined undefined is when I'm not declared it Null is when I've declared it And I've said it about Yeah, there is like this some issues To say the lead there is some issues That's that's the So I'm guessing you're asking this it's basically should be null integer It doesn't work To be honest if you're setting it to be a specific type passing in a wrong type should throw an error Right Now isn't a type you're passing the wrong type really should throw an error. It's just the correct behavior It's a wrong the wrong type So what are the scalar types? Yeah, so it's it's it's int boolean and Okay Yeah, so It's it's in float string and Our bull So so there in in a in a in a next version That would be like other stuff as well So currently you can like type like type in objects, right? In PHP you can say like give a class name and really like because they those are like you can determine those If it's if it's if something is not an object and you are you want an object? And if it doesn't give an object you cannot really do anything with it But the problem that they had was like if you if if he said if it we don't have to say int or anything You don't have to say into anything here If you if we get like a string one even if you do the like if you want to work with it You can actually work with it if you want to Whereas like if it's an object or class or Like some other thing if you don't get it you actually cannot do anything With the thing that you get basically so that was the like the issue with this stuff so These are the currently the stuff that are supported but they isn't like a RSC for other types as well I think and And they are being reserved like So yeah, so strict type is done using using declare It's a it's a decorative that has been there before It's been used for something called take. I'm not sure whether you choose it it was previously there and it's what you can Say to take and then a number of times that the function you want cause up it will invoke this basically, so so when you Say strict underscore type equals one basically the the strictness type ending is only Only occurs to this file and everything that's called from this file so So yeah, so if you when you call like file to with this thing on even if This file does not have the declare This should be like strictly checked and if you declare here and So let's let's let's try it again Good Because of this even if you remove that it works It it works So if you Even if you because I like not strict hint at this file So there is no strictness. It's fake Yeah, these are things like happens like file profile So if you're like inheriting from something and it has already a Type declared the inherited stuff should also like abide by the abide by that Yeah, and if it's not the Inherited the the parent class or something has not like declared all the Types then you can declare your own things and It happens down down the chain like Interface implements or if there is abstract class, so it happens down the chain Anywhere down the chain if it's not like previously defined you can define it That's Yeah, so so so Everything that's called from that file is strictly check strictly checked Yeah, so it's only for file Bay file per file basis Okay, so the other thing is return types So return types are like declared like this Not your kind of fancy Java or C++ See kind of return me, but this is if you have like worked with that this is this is it's the same thing that they do So basically this is a float That's why that there is so it the same thing happens for return types as well. It's file per file basis and It also happens down the chain or the same old things that happens to like type declaration so This is some other stuff now Colossians It's it's if you work with JavaScript you can say something Pipe pipe something pipe pipe something and if you go down Down the variables and if something is not null it will Assign it Yeah, it's it's something like this Then this is not declared this is now and because this is this is that I feel like equated and So you'll see to instead of end Spaceship operator, it's a it's a combined three-way operator, which is Which is so if it's equal It's zero If if the if the left is great, it's minus one if the right is greater. It's a plus one So that that happens to Objects as well. There's some issue with Some other stuff, but it actually should only like you only see oh minus one or plus one, but they're like We found some inter in some cells where I'd give like three or something. So it's it's a less or Greater than or equal to Um You use that a great soft talking algorithms. Oh, yeah, yeah Constant array Inter Divis integer division You'll get a whole number Closure Closure, there's a now new method Previously you had to bind to and it was only like compile time Bindings and now during runtime you can bind to something and then running Anonymous classes Basically you can like send send something with with like no name It's it's called. It's a then like the default name is class anonymous So if you want to it's only it should be done like if you I just want to throw in a Class and then get it over it. You don't want to reuse it or something Group use yeah, so This that's basically that you can like combine everything and then Use it. That's that the name says is all I guess Then there is a context sensitive Lex That's Okay, so So if you can see this example You know like include is a global function But because this like the this include is in like a class Because of that you can actually use it as a method as well So this gives the like the possibility because php has like 67 research variables like names And because of that these are but still these also can be used depending on the context Throbal and eras, okay, so So So php, you know about exceptions right there is exceptions and then you are fatal errors So previously fatal errors couldn't you couldn't catch them like they go off and like you need to Place the logs or something to find it So in the new thing I knew all our fatal errors are catchable And like and it let's go through the final asher Not not nothing beyond that That's like so different between exceptions and Eras, I think like there's something that's that's a thing that's going on as well. So what happens is There's a trouble interface That both of these things actually inherit from the problem interface is internal only and cannot be implemented you can Implement your own exception so Eras can be like pinked as like like runtime errors or something exceptions are like your problems and Eras are like php's problems sort of Unicode code points So so now you can like do like your unicode stuff in in double strings And like and it will be like proper unicode and not be like a string or something like you can see the difference Between those two So these are like some changes Those are previous one like features these are changes Previously you could actually put multiple Breaks on switches now it's only one reverse reserve more types Yeah, so there's there's like Some more types that have been like reserved or you cannot use it for class names And some other stuff interfaces and stuff normally then Real octals so previously octals When it like see a saw octal it work if it like go through and as soon as it's not an octal it will like Remove leave that and that's the doctor now now from now on everything should be like real List improvements. There's that's a whole there's like a subset of stuff Now it will not do strings you need to do String splits or something This doesn't do that This is a cryptography secure Sudo random number generation or something. Yeah So what it will do is like pseudo random numbers Using your like like different mediums basically Like it will depend on like they've random or like there is like five options that it has it will take one of them and Give it up Password Underscore has there was there's an option called the salt for that. It was it was removed And now it uses like the default salt that it produces Yeah, so there is this actually Quite a lot more So this is the migration dots We have created so it has like it has all the all the changes that has gone in and There'll be like more changes that will be coming up So, yeah, that's So you have any questions for person do you can ask him later He saw those guys that has a php.net email address. So, you know, it's kind of Yeah, just give it