如果陈述异常行为

时间:2016-05-18 12:27:33

标签: php if-statement symfony

Heyho,

我有一个小网站,想要创建一个pdf。为此,我使用dompdf和一些基本的php:

/**
* @Route ("/generatePDF/{php}", name="generatePDF")
*/
public function generatePDFAction($php)
{
   $isPHP = $php;

   if($isPHP == true)
   {
      $lang = "php";
   }else
   {
      $lang = "js";
   }

   //open a link with $lang and get it's html (=> $html)

   //Just for testing, normally it's a working websites html-code
   $html = $isPHP;

   $dompdf = new Dompdf();
   $dompdf->loadHtml($html);
   $dompdf->setPaper('a4', 'landscape');
   $dompdf->render();
   $pdf = $dompdf->output();

   //$isPHP = false;

   if($isPHP == true)
   {
      file_put_contents("downloads/rulesphp.pdf", $pdf);
      unset($dompdf);
      return new Response($this -> redirect('/downloads/rulesphp.pdf'));
   }else
   {
      file_put_contents("downloads/rulesjs.pdf", $pdf);
      unset($dompdf);
      return new Response($this -> redirect('/downloads/rulesjs.pdf'));
   }
}

然后调用它:

<a class="btn btn-default" href="{{ path('generatePDF', {'php': 'true'}) }}">PDF aktualisieren</a>

<a class="btn btn-default" href="{{ path('generatePDF', {'php': 'false'}) }}">PDF aktualisieren</a>

我是否需要php或js规则。

$isPHP是布尔值I切换到函数。第一个if语句就像魅力一样,只在最后打破... $ html通常是网站html,我只是将其设置为$isPHP以进行测试(以查看$isPHP是否为true/false)。现在问题是:

每当我运行我的代码时,它都会创建并重定向到rulesphp.pdf,无论$isPHP是否设置为&#34; true&#34;或&#34;假&#34;。

Sidenote :当我取消注释&#34; //$isPHP = false&#34; - 如预期的那样,它会创建一个&#34; rulesjs.pdf&#34;但是如果我再次评论或删除它,它就不会再回到它的旧行为(就好像{ {1}}总是$isPHP - &gt;创建rulesphp.pdf,无论设置了true,它只是保持&#34;创建rulesjs.pdf / $isPHP是总是$isPHP&#34; -behavior。

Sidenote2 false设置正确,如果它是真的,那么pdfs内容为真(因为$isPHP),如果它是&#39 ; s false,pdfs内容也是假的。

1 个答案:

答案 0 :(得分:1)

@Route ("/generatePDF/{php}", name="generatePDF")

您的路由传递了字符串参数。因此,如果您通过/generatePDF/true/generatePDF/false网址调用它,则会收到字符串。

使用:

$isPHP === 'true'

$isPHP = $php === 'true'