PHP 的新功能

php 的新功能

php 8.4:新增功能以及如何使用它

php 8.4 现已推出,带来了一些令人兴奋的功能,可以简化编码并提高性能。本文通过简单的示例解释了最重要的更新,使各种技能水平的开发人员都能轻松理解和使用这些功能。

1. 属性挂钩

属性挂钩可让您自定义获取或设置属性时发生的情况。这消除了对单独的 getter 和 setter 方法的需要。

例子:

class user {    private string $firstname;    private string $lastname;    public function __construct(string $firstname, string $lastname) {        $this->firstname = $firstname;        $this->lastname = $lastname;    }    // this property combines first and last name    public string $fullname {        get => $this->firstname . ' ' . $this->lastname;        set => [$this->firstname, $this->lastname] = explode(' ', $value, 2);    }}$user = new user('john', 'doe');echo $user->fullname; // output: john doe$user->fullname = 'jane smith'; // updates first and last namesecho $user->fullname; // output: jane smith

为什么有用:

属性挂钩使您的代码更干净并减少样板文件。

2. 可见性不对称

您现在可以设置不同级别的可见性来读取和写入属性。例如,一个属性可以被所有人读取,但只能被类本身写入。

例子:

class bankaccount {    public private(set) float $balance; // public read, private write    public function __construct(float $initialbalance) {        $this->balance = $initialbalance; // allowed here    }    public function deposit(float $amount): void {        $this->balance += $amount; // allowed here    }}$account = new bankaccount(100.0);echo $account->balance; // output: 100$account->deposit(50.0); // adds 50 to the balanceecho $account->balance; // output: 150// the following line will cause an error:// $account->balance = 200.0;

为什么有用:

此功能可以更轻松地控制属性的访问和更新方式。

3. 新的数组函数

php 8.4 添加了新的数组函数,使您无需编写手动循环。

立即学习“PHP免费学习笔记(深入)”;

例子:

$numbers = [1, 2, 3, 4, 5];// find the first even number$firsteven = array_find($numbers, fn($n) => $n % 2 === 0);echo $firsteven; // output: 2// check if any number is greater than 4$hasbignumber = array_any($numbers, fn($n) => $n > 4);var_dump($hasbignumber); // output: bool(true)// check if all numbers are positive$allpositive = array_all($numbers, fn($n) => $n > 0);var_dump($allpositive); // output: bool(true)

为什么有用:

这些函数使数组操作编写起来更快、更容易理解。

4. 简化的对象实例化

您现在可以创建一个对象并立即调用它的方法,而无需将实例化放在括号中。

例子:

class logger {    public function log(string $message): void {        echo $message;    }}// create an object and call a method in one stepnew logger()->log('logging a message'); // output: logging a message

为什么有用:

它减少了不必要的语法,使您的代码更干净。

5. 弃用隐式可为空类型

php 8.4 要求您显式声明参数何时可以为 null。这使得代码更容易理解和维护。

例子:

// php 8.4 (recommended):function process(?string $data = null) {    echo $data ?? 'no data provided';}

为什么有用:

显式声明可以防止混淆并减少潜在的错误。

6. 惰性对象

惰性对象让您可以延迟创建对象直到实际使用它,这样可以节省资源。

例子:

class ExpensiveResource {    public function __construct() {        // Simulate a time-consuming setup        sleep(2);    }    public function doWork(): void {        echo 'Working...';    }}// Use a lazy object to delay creation$initializer = fn() => new ExpensiveResource();$reflector = new ReflectionClass(ExpensiveResource::class);$resource = $reflector->newLazyProxy($initializer);// The object isn't created yet$resource->doWork(); // Now the object is created and "Working..." is printed

为什么有用:

这在处理昂贵的操作或大型系统时特别有用。

结论

php 8.4 引入了多项功能,使编码更简单、更强大:

property hooks:替换 getter 和 setter 函数。不对称可见性:更好地控制财产访问。新数组函数:简化常见数组操作。简化的对象实例化:更清晰的对象创建。弃用隐式可空类型:更安全、更清晰的代码。惰性对象:通过延迟对象创建来节省资源。

无论您是初学者还是经验丰富的开发人员,这些更新都将使 php 使用起来更加愉快。从今天开始探索 php 8.4!

以上就是PHP 的新功能的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1249698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 21:34:56
下一篇 2025年12月9日 21:35:08

相关推荐

  • 为什么使用 POST 进行更新比超链接更安全

    在 php 中更新记录时,选择使用 执行操作(通常通过表单和 http 方法,如 post 或 put)还是 超链接(通常使用 get 方法)归结为安全性和最佳实践。这就是为什么执行操作是首选: 安全 get(超链接): 由链接触发的操作通常使用 get http 方法,该方法旨在检索信息,而不是修…

    2025年12月9日
    000
  • 要避免的 fetch() 和 XMLHttp 错误

    可悲的是,我没有避免这些错误。我希望这可以帮助其他人在尝试更新网页而不完全下载新版本时避免它们。我最终得到的代码似乎有效: async function fetchdbsingle(url, str) { const datatosend = str; console.log(‘fetchdbsin…

    2025年12月9日
    000
  • 如何在 Laravel 中处理大型数据集而不耗尽内存

    如何在 laravel 中处理大型数据集而不耗尽内存 在 laravel 中处理大量数据时,经常会遇到应用程序内存不足等问题。当尝试一次将数千(甚至数百万)条记录加载到内存中时,可能会发生这种情况。然而,laravel 提供了一些有用的方法来帮助您以较小的块处理数据,从而节省内存并使应用程序运行得更…

    2025年12月9日
    000
  • Web 图像:完美(自动)调整大小和转换

    几乎每个前端开发人员都知道,我们需要在不影响质量的情况下向用户提供尽可能小的图像。我们都知道如何实现这一目标。但这是一件没人喜欢做的苦差事。同样从商业角度来看,这需要时间,而时间就是金钱。所以,“足够好”就够了。 让我分享一下我们如何改进和自动化完美图像交付,而不会给开发人员带来更多工作。 通常是如…

    2025年12月9日
    000
  • PHPStan:通过静态分析提高 PHP 代码质量

    在动态类型盛行的 php 生态系统中,管理代码质量并确保无错误开发可能具有挑战性。 phpstan 是一款专为 php 定制的静态分析工具,旨在帮助开发人员在运行代码之前捕获错误和潜在问题。通过静态分析,phpstan 允许开发人员通过在开发早期捕获错误来编写更可靠、可维护和健壮的代码。在这篇文章中…

    2025年12月9日
    000
  • Laravel 观察者:应用程序生命周期中的沉默忍者

    简介 想象一下,每当您在网站上提交表单时,一个隐形助手就会进来并再次检查所有内容。添加更多详细信息,甚至无需您费力即可发送一封欢迎信。 laravel 观察者就像默默工作的幕后助手。而且它的功能强大,可以在您需要时处理所有任务。在这篇文章中,我们将深入探讨观察者在 laravel 中的工作方式,以及…

    2025年12月9日
    000
  • 比特币基础知识普及_小白也能看懂的数字货币

    比特币是一种去中心化的数字货币,基于区块链技术运行,总量恒定2100万枚,通过挖k产生,具有稀缺性、安全性和全球共识价值,需用账户存储并注意私钥安全与价格波动风险。 比特币基础知识普及_小白也能看懂的数字货币 你是否经常听到比特币、区块链这些词汇,感觉它们听起来既神秘又高大上,仿佛是另一个世界的东西…

    2025年12月9日
    000
  • 什么是无常损失(Impermanent Loss)?它为什么是流动性提供者面临的主要风险?

    无常损失是因市场价格波动导致流动性提供者资产价值偏离的账面亏损。在AMM模型中,当ETH/USDT池中ETH价格从1000涨至1500 USDT时,套利使池内比例调整,导致LP持有资产变为少于1 ETH和多于1000 USDT,提取时总价值低于直接持有原始资产。该损失由价格波动幅度决定,与方向无关:…

    2025年12月9日
    000
  • 什么是DAO的财库管理?为什么说它是决定一个DAO能否长期发展的关键?

    DAO财库管理通过去中心化方式保障资产安全与高效配置,核心职能包括资金存储、社区共识驱动的分配及透明决策。为控制风险,需设立支出上限、多签钱苞机制和链上异常监控。收益优化策略涵盖将闲置资产投入经审计的DeFi协议,如稳定币借贷、主流DEX流动性挖 矿及低风险结构化产品。所有资金使用须经完整治理流程:…

    2025年12月9日
    000
  • 抄底什么意思?加密市场中“捡便宜”的策略与技巧

    Binance币安 欧易OKX ️ Huobi火币️ 核心概念:抄底到底是什么意思? 抄底,顾名思义,是指在金融市场中,当某项资产(如股票、基金、加密货币、房地产等)的价格经历一轮大幅下跌后,投资者认为其价格已经到达或接近最低点,于是果断买入,以期在后续的价格反弹中获取丰厚利润的投资行为。 这个“底…

    2025年12月9日
    000
  • 加密货币中的 ABCD 型态是什么?运用方式、绘制以及交易介绍

    %ignore_a_1%市场瞬息万变,但有一种型态在比特币、山寨币甚至低市值图表中反复出现:abcd 型态。交易者依赖它并非因为其受欢迎,而是因为它揭示了真实的价格行为逻辑、三个连续的价格波动、ab 和 cd 腿之间的对称性,以及驱动趋势耗尽或延续的心理因素。 Binance币安 欧易OKX ️ H…

    2025年12月9日 好文分享
    000
  • 什么是“价值存储”?为什么比特币被称为数字黄金?

    比特币因稀缺性、可验证性和广泛共识成为价值存储工具,其2100万枚上限和减半机制形成抗通胀属性,区块链技术保障交易不可篡改,全球机构逐步将其纳入资产配置。 “价值存储”指资产能长期保存购买力,比特币因稀缺与抗通胀特性获此称誉。 为了方便新手快速上手币圈交易并实时查看市场数据,可通过主流交易所币安(B…

    2025年12月9日
    000
  • 为什么说“熊市是最好的播种期”?给新手的熊市生存策略

    熊市是积累优质资产的关键阶段,新手应坚持持有比特币、以太坊等核心资产,避免恐慌抛售;通过定期定额方式分批建仓,降低投资成本与风险;利用市场低迷期学习区块链技术、分析方法和行业动态,提升投资能力;积极参与项目方测试网、空投等生态活动,低成本获取代币;同时严格控制加密投资比例,不超可投资资金的合理范围,…

    2025年12月9日
    000
  • 为什么说“做你自己的研究”(DYOR)是加密世界第一生存法则?

    DYOR是币圈核心原则,通过自主研究项目团队、技术、代码活跃度、代币分配、应用场景、经济模型、社区质量及风险控制,识别真实价值,规避虚假信息与情绪误导,实现理性投资决策。 DYOR(Do Your Own Research)是币圈最核心的生存原则,能有效避免被虚假信息和市场情绪误导。 为了方便新手快…

    2025年12月9日
    000
  • 为什么高倍杠杆下,一个微小的价格波动就会导致我爆仓?

    高倍杠杆会成倍放大市场波动影响,1%反向波动在100倍杠杆下即可导致本金全损。使用50倍杠杆时最大可承受波动仅为2%,需通过降低杠杆、增加保证金、设置止损等手段控制风险。应避免使用最高杠杆档位,手动提高初始保证金,保持保证金率远高于强平阈值,并结合技术位设定止损单,利用移动止损锁定利润,严格遵守止损…

    2025年12月9日
    000
  • 为什么看对了方向却没赚到钱?是开仓点位问题还是持仓心态问题?

    正确判断行情却未盈利,主因在于执行与心态。1、优化开仓:等待价格回踩关键支撑,结合MACD底背离等信号分批建仓,设定止损确保盈亏比优于2:1。2、管理持仓:预设部分止盈、使用移动止损、减少盯盘频率并记录交易逻辑以避免情绪化平仓。3、控制加仓:视加仓为新交易,独立设止损,限制总仓位不超初始两倍,规避情…

    2025年12月9日
    000
  • 为什么说“会买的是徒弟,会卖的是师傅,会空仓的是祖师爷”?

    Binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 这句股谚揭示了投资中不同境界的修炼过程,买入相对简单,卖出关乎盈亏,而空仓则是最高级别的自我控制。 一、会买的是徒弟 买入是投资的起点,主要依赖于对市场和标的的分析…

    2025年12月9日
    000
  • 什么是“周线”和“月线”级别分析?为什么说大周期决定小周期的交易方向?

    周线与月线是判断中长期趋势的核心工具,周线过滤短期波动、适合波段交易,月线反映长期趋势、具备更高稳定性。月线决定宏观方向,周线细化波段机会,日线执行具体操作,遵循“月线定方向、周线抓波段、日线精操作”原则可提升胜率。当月线处于多头排列且价格站稳5月均线上方时,表明长期趋势向上,周线回调成建仓良机;若…

    2025年12月9日
    000
  • 什么是“多周期共振”?为什么结合大周期和小周期能提高合约交易胜率?

    多周期共振通过日线、4小时、1小时图趋势一致提升交易可靠性。先以日线定主方向,再用4小时确认中期动能,最后在1小时找支撑阻力位入场点,结合K线形态与指标背离精准执行,合理搭配周期可过滤假信号,增强决策准确性。 Binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下…

    2025年12月9日
    000
  • 为什么说“亏小钱,赚大钱”是合约交易的精髓?截断亏损,让利润奔跑有多难?

    答案:合约交易需遵循“亏小钱,赚大钱”原则,通过技术位、ATR和资金管理控制亏损,运用移动止损、趋势指标和分批止盈扩大盈利,同时克服侥幸、恐惧和赌徒心理以稳定执行策略。 正规靠谱的加密货币交易平台推荐: 欧易OKX: Binance币安: 火币Huobi: Gateio芝麻开门: “亏小钱,赚大钱”…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信