Почему PHPStorm сообщает о том, что переменная может быть не объявлена?

Здравствуйте! Подскажите, почему PHPStorm может считать, что переменная $record может быть не объявлена(Variable 'record' may have not been defined)?
private function addrec ($host,$type,$content,$login,$domainid) {$record = "$host 600 IN $type $content";
    $addquery = $this->connect->prepare("INSERT INTO  `dns` (`userid` , `domain` , `host` , `type` ,  `content` ) VALUES (:userid,:domain,:host, :type,:content)");
    $addquery->execute([":userid" => $login , ":domain" =>$domainid , ":host0 => $host"]);
    return $record;
    }

    private function addmx ($host,$priority,$content,$domainid,$login,$type) {
        $record = "$host 600 IN MX $priority $content".PHP_EOL;
        $addquery = $this->connect->prepare("INSERT INTO  `dns` (`userid` , `domain` , `host` , `type` , `priority` , `content` ) VALUES (:userid,:domain,:host, :type,:priority, :content)");
        $addquery->execute([":userid" =>$login , ":domain" => $domainid , ":host" => $host , ":type" => $type , ":priority" => $priority , ":content" =>$content]);
return $record;
    }
 
    private function addsrv ($service,$proto,$host,$priority,$weight, $port,$domainid,$login,$type,$content) {$record = "_$service._$proto.$host. 600 IN SRV $priority $weight $port $content".PHP_EOL;
        $addquery = $this->connect->prepare("INSERT INTO  `dns` (`userid` ,`domain` , `host` , `type` , `priority` , `target` , `weight` , `proto` , `port` ) VALUES (:userid,:domain,:host, :type,:priority, :target , :weight ,:proto , :port)");
        $addquery->execute([":userid" =>$login, ":domain" =>$domainid , ":host" =>$host , ":type" =>$type , ":priority" =>$priority , ":target" => $content , ":weight" =>$weight , ":proto" =>$proto , ":port" =>$port]);
        return $record;
    }
// function to add a DNS record for existing domain name
  
    public function addrecord ($domainid, $login, $host, $type, $content=0, $priority=0, $weight=0, $proto=0, $port=0, $service=0) {

$mainname = $this->connect->prepare("SELECT `mainname` FROM `domain` WHERE `unid` = :domainid ");
$mainname->execute([":domainid" => $domainid]);
$mainname = $mainname->fetch(PDO::FETCH_ASSOC);
$mainname = $mainname['mainname'];
$mainname = $this->connect->prepare("SELECT `mainname` FROM `domain` WHERE unid = :domainid");
$mainname->execute([":domainid"=>$domainid]);
if ($type!='MX' OR  $type !='SRV') {$array = self::addrec ($host,$type,$content,$login,$domainid); $record = $array['record']; }
if ($type=='MX') { $record = self::addmx ($host,$priority,$content,$domainid,$login,$type);}
if ($type=='SRV') {$record = self::addsrv ($service,$proto,$host,$priority,$weight, $port,$domainid,$login,$type,$content);}
//ошибка проявляется вот здесь
file_put_contents("/etc/bind9/$mainname.conf" , $record , FILE_APPEND);
}
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
потому что в addrecord она объявляется внутри if

если ниодин if не сработает, то она будет не объявлена
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы