【问题标题】:Can't set a variable to true in PHP无法在 PHP 中将变量设置为 true
【发布时间】:2012-01-14 13:10:40
【问题描述】:

我正在制作一个使用类布尔变量的 PHP 脚本,但由于某种原因,当我想将其设置为 true 时,它不起作用:/

<?php


class TinyFram {



    private $urlMatched;


    public function get($url, $method){

        $urlR = str_replace('/', '\/', $url);
        $urlR = '^' . $urlR . '\/?$';

        if (preg_match("/$urlR/i", $reqURI, $rMatch)) {
            $this->urlMatched = true; // I SET IT TO TRUE HERE
            $method($rMatch);
        } 
        if(!$this->urlMatched) {
            echo var_dump($this->urlMatched); // BUT HERE IT SHOWS AS FALSE
            notFound($rMatch);
        }
    }

}

?>

我做错了什么?谢谢!

【问题讨论】:

  • 只有在第二个if 条件通过时才执行var_dump,但您的条件为(!$this-&gt;urlMatched)。所以我不知道你为什么感到惊讶!
  • 另外,你可能想preg_quote你的$url...
  • 也许我的正则表达式也错了。但是 IDK 为什么它不将其设置为 true,因为 preg_match 匹配并且 $method($rMatch); 被调用

标签: php variables boolean


【解决方案1】:

您的 preg_match 不匹配,因此该变量永远不会设置为 true。

【讨论】:

  • 它确实被调用了,因为 $method($rMatch); 被调用了
【解决方案2】:

var_dump 是在一个条件中检查 $this->urlMatched 是否为假值(false, 0, '', null)。当然会显示为假。

btw:var_dump 前面不需要回显。

【讨论】:

    猜你喜欢
    • 2020-02-19
    • 2022-01-25
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多