当前位置: 首页 > 面试题库 >

在PHP 7之前,如何解决“必须是给定字符串的字符串实例”?

潘文乐
2023-03-14
问题内容

这是我的代码

function phpwtf(string $s) {
    echo "$s\n";
}
phpwtf("Type hinting is da bomb");

导致此错误:

可捕获的致命错误:传递给phpwtf()的参数1必须是字符串的一个实例,字符串给定

看到PHP能够一口气识别并拒绝所需的类型,这不只是一点点Orwellian。 该死的,有五个灯。

PHP中字符串的类型提示等效于什么?对答案的额外考虑,可以准确解释这里发生的情况。


问题答案:

在PHP7之前,类型提示只能用于强制对象和数组的类型。标量类型不是类型隐含的。在这种情况下,应该使用该类的对象string,但是您要给它一个(标量)string。该错误消息可能很有趣,但是一开始它不起作用。给定动态键入系统,这实际上具有某种变态的意义。

您只能 手动 “键入提示”标量类型:

function foo($string) {
    if (!is_string($string)) {
        trigger_error('No, you fool!');
        return;
    }
    ...
}


 类似资料:
  • 问题内容: 表: 值: 我想之前替换字符串用。 结果: 如何使用子字符串和基于字符串中的字符进行替换? 问题答案: 您甚至不需要使用或,您可以使用以下命令: 您可以使用以下方法进行测试:

  • 运行此代码时 我得到这个错误 read_bikeins=pdf。PdfFileReader(bikeins)回溯(最近一次呼叫最后一次): 文件“”,第1行,以read\u bikeins=pdf格式。PdfFileReader(比基恩) 文件“C:\Users\Naveen Raj\Anaconda3\lib\site packages\PyPDF2\pdf.py”,第1084行,在init s

  • 假设我需要一个regex来验证,例如,一个在任何地方都只包含一个字符的句子。 怎么做?

  • 问题内容: 如何在特定子字符串之后获取字符串? 例如,我想在 问题答案: 最简单的方法可能只是分割目标词 split使用要拆分的单词(或字符),并且可以选择限制拆分次数。 在此示例中,对“世界”进行拆分并将其限制为仅一个拆分。

  • 我想使用函数获取其或包含某个值的所有值。然而,我得到了这个错误: java.sql.sqlexception:几何图形字节字符串必须是小尾序。在com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.Java:1074)在com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.Java:4120)在com.my

  • 问题内容: 我有一个子字符串: 我还有另一个字符串: 如何查找是否是使用Python的子集? 问题答案: 用::