...为什麽 PHP 的变数宣告要使用 $ 符号?...PHP 在变数前使用 $ 的用意是提醒开发者,宣告变数是需要花费记忆体空间成本的。也因此,PHP 开发者比其他语言的开发者更重视记忆体配置。--节录自民明书坊刊,你所不知道的 PHP 真相
安安,今天想跟大家介绍几个不错的 New Features。
顺便当个公道伯(但我也才写一年多)出来帮 Modern PHP 平反一下。
因为身边不少人没用过 PHP,看看老旧的网路文章就觉得 PHP 很难用,真ㄉ是酱咪?
或是某些原因下被迫使用 PHP 留下不好回忆(?)的阅读者,希望你看完觉得,「哎呀,是我误会了呢 >"<」。
PHP 是弱型别,没办法做静态语法检查,超难用的啦!
甘阿捏?
其实 PHP 7 就提供了引数型别宣告与函式回传宣告唷。
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
听说 PHP 很不安全ㄟ。我听说我老师说的。
甘阿捏?
我看不安全的是写的人吧。
[讨论] PHP是个漏洞多且不安全的後端语言? | alpe
[讨论] PHP是个漏洞多且不安全的後端语言? | MoMoShota
[讨论] PHP是个漏洞多且不安全的後端语言? | GALINE
PHP 命名很混乱,档案结构也混乱。
甘阿捏?
你都不用 PSR、MVC 框架?
PHP 还没死,而且还有在更新。
很多你想问怎麽还没死的东西,其实都有在更新。
除了前面介绍的强型别模式,以下是我目前有用到的 featuers(和写这篇文查到觉得好像满方便的 features)。
原本只想介绍新 featuers,後来发现要确认是哪一版出的有点麻烦,就决定不分版本,请直接升到最新版 ><
Null coalescing operator
Null 检查的语法糖。
<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>
物件::class
物件可以返回整个 class。
$foo = new Foo();
var_dump($foo::class);
如果是 ClassName::class 返回的是 ClassName
箭头函示
fn() => file_get_contents($path);
array merge
原本
array_merge( $arrA, $arrB)
8.1 New Feature
[…$arrA, …$arrB]
function no return
function () : never
{
}
If return will throw fatal error
property assignment
过去不想被变可能要用 protected + getter,8.1 後可以宣告 public readonly
function (public readonly) : never
{
}
待补 >"<
<<: [Day 20] - 『转职工作的Lessons learned』 - GraphQL (Hasura) - 身份级别权限设定
Flexbox是CSS3的盒模型,这个属性是用来做排版使用,也因为它可以灵活弹性排版的特性,也很常使...
此篇会介绍如何修改 Bootstrap 元件样式。 事前准备 须先了解变数设置、通用类别设置,再继...
前言 昨天分享了关於拒绝的两三事,是因为它容易出现在日常生活与团体协作当中,後续带来的影响也不容小觑...
1.前言 OK,今天要来说说Code的部分,上一篇我们把资料储存在Google Sheet中,那今天...
当我们要将父元素的资料传递到子元件的时候会使用 props,但假设有很多个 component,曾曾...