gpt4 book ai didi

hacklang - hack中常用的php函数

转载 作者:行者123 更新时间:2023-12-04 12:21:14 27 4
gpt4 key购买 nike

我决定开始一个新项目来进入 hacklang,在解决了一些我最初遇到的从 php 习惯过渡的问题之后,我遇到了以下错误:

Unbound name: str_replace
Unbound name: empty

做了一些研究,我发现这是由于使用了未经过类型检查的“遗留”php,并且会出现 //strict 错误。 .

没关系, empty()很容易更换,但是 str_replace()有点困难。

是否有与 //strict? 一起使用的等效函数?或者至少是类似的东西。

我知道我可以使用 //decl但我觉得这违背了我的目的。

至少有什么方法可以判断哪些功能是在 hack 中实现的,哪些不在文档中,因为我找不到?

作为引用(虽然它与问题本身并不太相关),这里是代码:
<?hh //strict
class HackMarkdown {
public function parse(string $content) : string {
if($content===null){
throw new RuntimeException('Empty Content');
}
$prepared = $this->prepare($content);

}
private function prepare(string $contentpre) : Vector<string>{
$contentpre = str_replace(array("\r\n","\r"),"\n",$contentpre);

//probably need more in here
$prepared = Vector::fromArray(explode($contentpre,"\n"));
//and here
return $prepared;
}
}

最佳答案

您根本不需要更改代码。你只需要告诉 Hack 工具所有内置的 PHP 函数。

最简单的方法是下载 this folder并将其放在您的项目中的某个位置。我把它放在我项目基础的一个 hhi 文件夹中。那里的文件告诉 Hack 所有内置的 PHP 函数。

它们中的大多数没有类型提示,这可能导致 Hack 认为所有内容的返回类型是 mixed而不是实际返回,在大多数情况下实际上是正确的,例如 str_replace可以返回 stringbool .但是,它确实停止了“未绑定(bind)名称”错误,这是添加它们的主要原因。

关于hacklang - hack中常用的php函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22741727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com