|
204
|
| leepowers · 技术社区 · 15 年前 |
|
|
1
197
在PHP7之前
type hinting
只能用于强制对象和数组的类型。标量类型不是可hintable类型。在这种情况下,类的对象
手动 “类型提示”标量类型:
|
|
|
2
22
**2017年编辑**PHP7引入了更多的函数数据类型声明,前面提到的链接已经移动到 Function arguments : Type declarations . 从那一页:
最后一个警告对于理解错误“Argument must of type string,string given”非常重要;由于大多数情况下只允许将类/接口名称作为参数类型,因此PHP会尝试查找类名“string”,但找不到任何类名,因为它是基元类型,因此会失败并出现此错误。 |
|
|
3
8
|
|
|
4
3
正如其他人已经说过的,类型暗示目前只适用于对象类型。但我认为您触发的特定错误可能是为了准备即将到来的字符串类型 SplString 理论上,它的行为类似于字符串,但由于它是一个对象,因此将通过对象类型验证。不幸的是,它还没有在PHP 5.3中出现,可能在5.4中出现,所以还没有测试过。 |
|
|
5
2
从PHP 7.0开始,类型声明允许标量类型,因此这些类型现在可用:
|
|
|
6
0
|
|
7
0
当从Laravel控制器调用函数到PHP文件时,出现了这个错误。 几个小时后,我发现了问题:我正在使用 $这个 |
|
|
8
0
(最初由 leepowers 在他的问题中)
基本类型名称在PHP中不保留
我的错误是认为错误消息只指字符串原语类型——“实例”一词应该让我停顿一下。进一步说明的示例:
输出:
在PHP中
|
|
|
9
-1
我认为在块内的php上打字,php上的String不是我所知道的对象:
|