2011-10-19 10 views
1

フル・エラー:PHPスクリプトで「間違ったデータ型」エラーを解決するにはどうすればよいですか?

in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /var/www/vhosts/example.com/httpdocs/sites/example.com/themes/example/page.tpl.php on line 22. 

関連するコード:

if (($_GET['nid']) && ($_GET['uid'] != '5')) : 
    $arr = array("7916","7917","7996","7918","7990","7919","7921","7924","7925","7923","7922","8011"); 
    reset($arr); 
    $nid = $_GET['nid']; 
    // settype($nid, "integer"); 
elseif(($_GET['uid'] == '5') && ($is_front)): 
    include("include_ad_front.php");  
endif; 

if((in_array($nid, $arr)) && ($is_front) && (!$_GET['uid'])) { 
    //code continues below... 

ライン3と5は、問題を解決するためにちょうど私のattemtsました。行10は実際にはこのエラーの行22とエラーを投げる行です。

+0

ここにコードを記入してください。 –

答えて

2

私はあなたの問題を見ると思います。

最初にif..elseのチェックを済ませた後、in_arrayのものが呼び出されています。今すぐif...elseの最初のの一部が作成されていますが、2番目の配列は作成されていません。

の前に配列の前に配列を移動してみてください。if...elseの代わりに配列を移動してみてください。

+0

最初の問題が検証されない限り、配列を作成すべきではありませんが、私はあなたが何を言っているかを見ています...それを見て、私がそれを得るかどうかを見てみましょう。テストするだけで、私はバンドの援助としてあなたの提案を試みます。 – user1004207

+1

最初の 'if'が有効であるかどうかだけを確認する場合は' if(isset($ arr)and isset($ nid)and in_array($ nid) 、$ arr)...){' – Nexerus

+0

が動作しているようです!ありがとう! – user1004207

関連する問題