2017-03-08 8 views
1

変数がnullでない場合、私はwordpressにタグを表示したいと思います。しかし、変数がnullであっても実行されます。ここに私の変数です:nullでないphp(wordpress)

<?php 
$st_tr = get_field('startkostnad_transfertryck') ?: 'null'; 

$tr_vo1_f1 = get_field('tr_vo1_f1') ?: 'null'; 
$tr_vo1_f2 = get_field('tr_vo1_f2') ?: 'null'; 
$tr_vo1_f3 = get_field('tr_vo1_f3') ?: 'null'; 
$tr_vo1_f4 = get_field('tr_vo1_f4') ?: 'null'; 
$tr_vo1_f5 = get_field('tr_vo1_f5') ?: 'null'; 
$tr_vo1_f6 = get_field('tr_vo1_f6') ?: 'null'; 
?> 

そして、それが実行されます:

<?php  
if ($st_tr) { 
    echo $st_tr;  
?> 
<select name="print" id="print_m"> 
    <option value="0">Ingen märkning</option> 
    <?php 
    // Color quantities 
    $c_q = array("$tr_vo1_f1", "$tr_vo1_f2", "$tr_vo1_f3", "$tr_vo1_f4", "$tr_vo1_f5", "$tr_vo1_f6"); 
    // not null 
    $c_q_nn = array_filter($c_q, 'strlen'); 

    // Color quantity and display (check if exists) 
    if ($tr_vo1_f1){  
     $c_q_d_f1 = "1-färgstryck"; 
    } 
    if ($tr_vo1_f2){ 
     $c_q_d_f2 = "2-färgstryck"; 
    } 
    if ($tr_vo1_f3){ 
     $c_q_d_f3 = "3-färgstryck"; 
    } 
    if ($tr_vo1_f4){ 
     $c_q_d_f4 = "4-färgstryck"; 
    } 
    if ($tr_vo1_f5){ 
     $c_q_d_f5 = "5-färgstryck"; 
    } 
    if ($tr_vo1_f6){ 
     $c_q_d_f6 = "6-färgstryck"; 
    }  
    $c_q_d = array("$c_q_d_f1", "$c_q_d_f2", "$c_q_d_f3", "$c_q_d_f4", "$c_q_d_f5", "$c_q_d_f6"); 
    $c_q_d_nn = array_filter($c_q_d, 'strlen'); 
    foreach (array_combine($c_q_nn, $c_q_d_nn) as $color_q => $color_q_d) {  
     echo '<option value="' . $color_q . '">' . $color_q_d . '</option>';  
    } 

    ?>  
</select>  
<?php 
} 
?> 

また、これは最後の変数$tr_vo1_f6を実行します。 if文は問題だと思われますが、私はif (!($var == NULL))を除いて、それらを違った方法で書く方法を考え出すことができません。これは私が読んだところからif($var)と同じものになります。

if文を正しく書くにはどうすればよいですか?

答えて

0

実際にはnullという値ではなく、文字列を割り当てています。あなたは、変数がNULLでないかどうかを判断するためにISSE()を使用することができます

<?php 
$st_tr = get_field('startkostnad_transfertryck') ?: null; 

$tr_vo1_f1 = get_field('tr_vo1_f1') ?: null; 
$tr_vo1_f2 = get_field('tr_vo1_f2') ?: null; 
$tr_vo1_f3 = get_field('tr_vo1_f3') ?: null; 
$tr_vo1_f4 = get_field('tr_vo1_f4') ?: null; 
$tr_vo1_f5 = get_field('tr_vo1_f5') ?: null; 
$tr_vo1_f6 = get_field('tr_vo1_f6') ?: null; 
?> 
0

:あなたがして修正する必要があります。

http://php.net/manual/en/function.isset.php

例:

if (isset($st_tr)) 
.... 

あなたは、単一引用符を使用する場合は、文字列、および文字列を代入

$st_tr = get_field('startkostnad_transfertryck') ?: 'null'; 

NULL値を割り当てるために引用符を使用しないでくださいですnullではありません。

正しい方法は次のとおりです。

$st_tr = get_field('startkostnad_transfertryck') ?: null; 
関連する問題