gpt4 book ai didi

php - get_status() 函数返回 1 而不是 true 或 false,为什么?

转载 作者:行者123 更新时间:2023-12-02 07:05:51 25 4
gpt4 key购买 nike

在下面的代码中,我的网站类中的 get_status() 方法返回 1,而不是像我希望的那样返回 true 或 false。谁能告诉我为什么请?我认为这可能是我类的一个错误,我不确定这行代码在 get_status() 方法中是否是好的做法?

$httpcode = $this->get_httpcode();

当我回显 $siteUp 时,是否将 url 设为 http://www.google.com 始终为 1或 http://www.dsfdsfsdsdfsdfsdf.com

我对面向对象的 php 还很陌生,这是我第一次自学类(class),这是我为学习 oop 而构建的示例。它的设计目的是检查网站状态,并根据 httpcode 判断它是打开还是关闭。

如果您有任何关于为什么这不起作用的提示,我们将非常欢迎。提前致谢!

class website {
protected $url;

function __construct($url) {
$this->url = $url;
}

public function get_url() {
return $this->url;
}

public function get_httpcode() {
//get the http status code
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$this->url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpcode;
}

public function get_status() {
$httpcode = $this->get_httpcode();
if ($httpcode>=200 && $httpcode<400) {
$siteUp = true;
} else {
$siteUp = false;
}
return $siteUp;
}
}

// create an instance of the website class and pass the url
$website = new website("http://www.google.com");
$url = $website->get_url();
$httpcode = $website->get_httpcode();
$siteUp = $website->get_status();
echo "site up is set to: " . $siteUp;

最佳答案

1 就是 PHP 将“true”转换为字符串的方式

<?php echo true; ?>

将显示 1。

在 PHP 中,针对 1 的测试和针对 true 的测试几乎是一回事。

$siteUp = $website->get_status() ? "true" : "false";

将使它成为一个供您显示的字符串...但是您无法测试它是否为真,因为“true”和“false”都是有效字符串并且会给您一个 bool 值 TRUE。

关于php - get_status() 函数返回 1 而不是 true 或 false,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12139200/

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