Задать вопрос

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

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

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

Похожие вопросы
FoodSoul Калининград
от 160 000 до 250 000 ₽
BGStaff Москва
До 300 000 ₽
Greenway Global Новосибирск
от 150 000 до 250 000 ₽