2015-05-12 52 views
-1

我想添加第二個條件到現有的代碼,但它似乎並沒有工作。需要幫助添加第二個條件到現有的代碼

的條件是:

  1. 比較兩個字符串,從不同陣列(工作
  2. 並且從不同的陣列檢查的第三字符串的值(不 工作

下面是沒有第二個條件的工作代碼:http://pastebin.com/bfpNb9zw

這裏是我的嘗試:

基本上,我試圖讓工作位是這部分&& ($ca = '')&& ($ca = '0')&& ($ca = '1')但似乎$ CA不能循環

if(!function_exists('lookup')){ 
function lookup($chain, $type) { 
    $cacount = count($chain['tbsCertificate']['extensions']); 
    for($j = 0; $j < $cacount; $j++) { 
     $count = count($chain['tbsCertificate'][$type]['rdnSequence']); 
     $exists = array('utf8String', 'printableString', 'teletexString', 'bmpString', 'universalString', 'ia5String'); 
     $oid = array('id-at-commonName'); 
     for($i = 0; $i < $count; $i++) { 
      foreach($exists as $field) { 
       if(
        array_key_exists($field, $chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['value']) && 
        in_array($chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['type'], $oid) 
       ) { 
        $value = $chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['value'][$field]; 
        return $value; 
        $ca = ''; 
        if(isset($chain['tbsCertificate']['extensions'][$j]['extnValue']['cA'])) { 
        $ca = $chain['tbsCertificate']['extensions'][$j]['extnValue']['cA']; 
        } 
       } 
      } 
     } 
    } 
    return null; 
    } 
} 

if (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '')) { 
    echo 'end entity'; 
    } 
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '0')) { 
    echo 'secondary ca'; 
    } 
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '1')) { 
    echo 'primary ca'; 
    } else { 
    echo 'Root'; 
} 

回答

3
以外的地方閱讀

您正在使用=,該值設置爲$ca的值。您應該使用===來檢查值,而不是。

例子:

if (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca === '')) { 
    echo 'end entity'; 
} 
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca === '0')) { 
    echo 'secondary ca'; 
} 
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca === '1')) { 
    echo 'primary ca'; 
} else { 
    echo 'Root'; 
} 
+0

woops!好的。固定,但現在得到這個'注意:未定義的變量:ca' - 這裏是輸入的副本,如果需要http://pastebin.com/fhe8BdnB – user3436467

+1

在你的代碼(user3436467)中,'$ ca'看起來像它被設置作爲'function'內的局部變量,所以''ca'當然不會出現在'function'之外。 – DWright

+0

@Dwright,有道理,但我怎麼能讓它在函數外部可用? – user3436467