以下问题运行在php5.5
小弟刚学php没几天
求大神指教
1.官方文档给出的这个实例中declare(strict_type=1);
这个严格声明为何显示为一个不支持的声明...
然后把严格声明去掉后,下面两个int型的sum(1,2)也无法传入函数= =
立即学习“PHP免费学习笔记(深入)”;
感谢您选择使用ERMEB域名授权离线网络验证系统(简称:ERMEB域名授权系统)是ERMEB团队开发,ERMEB域名授权系统是国内最稳定,最强大,最先进的域名授权管理平台解决方案之一,ERMEB域名授权系统采用PHP +Mysql的技术,ERMEB域名授权系统框架使用Thinkphp6/mysql数据库基于Markdown开发者文档开发而成,项目安装请参考ThinkPHP官方文档及下面的服务环境说
0
<?php
declare(strict_types=1);
function sum(int $a, int $b) {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>2.这个实例中,function后面的: float是啥子意思?
是不是传进的数return出来的全变成浮点型?
然后依然执行错误
<?php
function sum($a, $b): float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?> 以下问题运行在php5.5
小弟刚学php没几天
求大神指教
1.官方文档给出的这个实例中declare(strict_type=1);
这个严格声明为何显示为一个不支持的声明...
然后把严格声明去掉后,下面两个int型的sum(1,2)也无法传入函数= =
立即学习“PHP免费学习笔记(深入)”;
<?php
declare(strict_types=1);
function sum(int $a, int $b) {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>2.这个实例中,function后面的: float是啥子意思?
是不是传进的数return出来的全变成浮点型?
然后依然执行错误
<?php
function sum($a, $b): float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?>
function后面的: float指的是该函数返回值的类型。
强类型strict_type是从PHP7开始才引入的东西,默认是不开启的,以后也不会默认开启,是一个很有争议性的特性。PHP之父rasmus,Zend公司创始人andi,PHP7性能方面的核心开发者dmitry和鸟哥laruence都投了反对票:
https://wiki.php.net/rfc/scalar_type_hints_v5
你写的是php7的代码,declare也好,类型指定也好,都是php7的特性
因为php7是个较大改动的新版本,所以这些特性php5.5并不支持
鉴于当下的环境过渡到php7还需要一段时间,你可以先看一下php5.5或php5.6的文档上手,然后再去看php7的新特性
这是PHP 5.6到PHP 7的迁移指南 https://github.com/vimac/Migrating-from-PHP5.6.x-to-PHP7.0.x,你可以当做是了解PHP 7新特性的地方
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号