2012-04-28 11 views
1

変数が存在するかどうかを調べる関数があります。

function variable(&$var, $default = NULL) 
{ 
    if((!isset($var) && !is_array($var)) || empty($var)) 
    { 
     return FALSE; 
    } 
    elseif(is_array($var) && count($var) <= 0) 
    { 
     return FALSE;  
    } 
    else 
    { 
     return $var; 
    } 
} 

私の問題は、私は$配列[「要素」]配列$配列とインデックス「要素」のような配列要素の参照は、それが存在していなかった場合でも、作成される渡すときに、この関数は、配列を作成することであり、前。

この関数が行うべきことは、echo variable($ var)のようなものです。 $ varが定義されていなくてもエラーは発生しません。

これをもう一度削除する方法や、関数が配列を作成しないようにする方法はありますか?

ありがとうございました。

+0

は、あなたが(ISSETを使用することはできません:http://ch.php.net/manual/de/function.array-key-exists.php

array_key_existsは、そのよう

:-)意図しゃれ "キー" ではありませんか? – Rainulf

+1

あなたのコードは非常に曖昧です。あなたは使用している完全なコードを投稿できますか? :) – F21

答えて

-4

削除するには、unset($ array ['element']);を使用します。またはunset($ array);あなたの目標に応じて。 配列が文字列になるようにするには、implode( ""、$ array)を使用してください。

+2

私はこの問題の全体的なポイントは、要素が作成されているの副作用なしで存在するかどうかを調べる方法を見つけることだと仮定しています。 – James

2

こちらをご覧ください)

if (array_key_exists('element', $array)({ 
    // do the fan dango 
} 
関連する問題