美好的一天,
我有一个奇怪的错误。
一般来说,或者至少据我所知。
在PHP中使用isset()
时,它会明确检查变量是否存在。它不会检查其中的内容或是否为空。
如果我想知道它是否是一个空变量。然后我应该使用empty()
。
现在我使用以下代码
if(isset($tab['content']) === true){
但是,我发现我的代码总是使用 else 语句。
///######## IF NO CONTENT SET
else {
debug((int)isset($tab['content']), $tab, gettype($tab['content']));
所以我解析了{因此调试函数}变量内容,发现实际上已经设置了“内容”。但它是NULL。
0
----
Array
(
[title] => Location
[id] => location
[url] =>
[content] =>
[active] =>
[ajax] =>
[icon] =>
)
----
NULL
我的意见非常奇怪。
Since : (int)isset($tab['content'])
Returns : 0
并且
gettype($tab['content'])
Returns : NULL
我错过了什么吗? 我究竟做错了什么?或者我遇到了臭名昭着的PHP功能之一?
指出: Karsten Koop
我忽略了我不应该使用isset()
的事实。而是:array_key_exists()
所以这是我的错。谢谢你的回答!
答案 0 :(得分:3)
确定变量是否已设置且不为NULL。
顺便说一句, setContentView(R.layout.activity_drugs);
lv= findViewById(R.id.idlistview);
searchView= findViewById(R.id.idsearch);
drugadapter= new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, data);
lv.setAdapter(drugadapter);
searchView.setOnQueryTextListener(this);
View focused = getCurrentFocus();
focused.clearFocus();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int i,
long id) {
Intent intent2=new
Intent(DrugsActivity.this,ResultDrugActivity.class);
intent2.putExtra("drug",lv.getItemAtPosition(i).toString());
intent2.putExtra("age", age11 );
intent2.putExtra("weight", weight11 );
startActivity(intent2);
}
});
boolean onQueryTextChange(String newText) {
drugadapter.getFilter().filter(newText);
return false;
}
返回一个布尔值,不需要在isset()
中使用===true
。