每次我从数据库中获取一些信息时,我都会重复进行isset检查或者变量是否为真。有没有聪明的方法以不同的方式来实现它?
如果我不这样做并且变量为空它会给我一个错误,所以我无法重复它。
我相信我正在做一些不必要的事情,它会让代码变得更长。
$variable = DB::select('SELECT * FROM `table_name`');
$variable2 = DB::select('SELECT * FROM `table_name2`');
if (isset($variable)){
if ($variable == 1){
doSomething();
}
}
if ($variable2){
if ($variable2 == 1){
doSomething2();
}
}
编辑:我刚刚意识到,如果一个空变量没有给我任何错误,它将通过所有下一个函数进行处理而没有任何意义,并且它会使找到整个脚本错误的位置变得更加复杂。
嗯,这可能意味着我的问题实际上是一个优势哈哈。
答案 0 :(得分:1)
如果您这样做:
Route::get('/select', ['as' => 'debug.select', function () {
// select
$var = DB::select('select * from users where email = 1');
// convert to boolean
dd(!!$var);
}]);
您会看到结果是:
false
虽然
Route::get('/select', ['as' => 'debug.select', function () {
// Select 1 user
$var = DB::select('select * from users limit 1');
// Convert an array to boolean / empty arrays === false on PHP
dd(!!$var);
}]);
时
true
话虽如此,使用你的代码
$variable = DB::select('SELECT * FROM `table_name`');
$variable2 = DB::select('SELECT * FROM `table_name2`');
if (! $variable) {
doSomethingWhenNothingWasFound();
}
if ($variable) {
doSomethingIfFound();
}
if ($variable2) {
doSomething2();
}