Почему 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);
}
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
потому что в addrecord она объявляется внутри if

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

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

Похожие вопросы