php 7.0标量类型声明须记清四词:int、float、string、bool,全小写无引号;strict_types=1仅对当前文件首行生效,约束本文件函数调用;参数类型写括号内参数前,返回值类型写括号后冒号后。

要在PHP 7.0中准确使用标量类型声明,避免因记混类型写法、strict_types作用范围或隐式转换规则导致运行时报错,必须掌握其核心记忆锚点和易错结构。
记住四种标量类型关键词
只记这四个单词:int、float、string、bool。它们全部小写,无引号,不加$,不带冒号,直接写在参数名前面。
错误写法示例:INT $a、"string" $s、String $name、boolean $flag——这些都会触发解析错误或类型不生效。
正确位置和格式:function greet(string $name, int $age): string。注意:返回值类型写在函数括号后,用英文冒号分隔。
strict_types=1 的三重限定性
方法一:它只对当前文件生效,跨文件调用不继承;
方法二:它必须是脚本中第一条可执行语句(允许前导空白和BOM,但不能有echo、declare其他指令、注释块之后再出现);
方法三:它仅约束同一文件内定义的函数调用行为——如果A.php启用了strict_types=1,调用B.php里定义的函数,B.php是否启用strict_types由B.php自己决定,不受A.php影响。
【文件顶部第一行非空内容必须是 declare(strict_types=1);】
参数类型与返回值类型的记忆口诀
第一步:参数类型写左边 → 在函数名后、括号内,紧贴参数变量名之前;
第二步:返回值类型写右边 → 在括号后、函数体前,用英文冒号+类型;
第三步:void和?null是额外语法,不属于标量类型,别混进“四词口诀”里;
第四步:标量类型不支持数组解构、对象属性、资源等复合形态——想约束数组请用array,想约束对象请写类名,它们不属于标量范畴。
记牢这个结构图:function name(type param, type param): type { ... }
区分强制模式与严格模式的典型表现
方法一:传入字符串"123"给声明为int的参数——严格模式下直接报TypeError;强制模式下自动转成整数123,静默通过。
方法二:传入整数5给声明为string的参数——严格模式崩溃;强制模式转成字符串"5",不报错。
方法三:检查错误是否在调用时立即抛出,而不是在函数体内运算时报错——如果是立即TypeError,说明strict_types已生效且类型不兼容。
提示:用var_dump(gettype($x))验证实际传入值的原始类型,比靠感觉更可靠。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











