Не могли бы вы просто сделать
if (Session::has('your_key'))
{
//your code here
}
Определение наличия элемента в сеансе
Чтобы определить, есть ли элемент присутствует в сеансе, вы можете использовать метод has. Метод has возвращает true, если элемент присутствует и не равен нулю:
if ($request->session()->has('users')) {
//
}
Чтобы определить, присутствует ли элемент в сеансе, даже если его значение равно null
, вы можете использовать [114 ] метод. Метод exist возвращает true, если элемент присутствует:
if ($request->session()->exists('users')) {
//
}
Не знайте о Java, но в.NET хорошая практика должна поместить перечисления параллельно в класс, который использует их, даже если это используется одним единственным классом. Таким образом, Вы записали бы:
namespace Whatever
{
enum MyEnum
{
}
class MyClass
{
}
}
Таким образом можно использовать:
MyClass c = new MyClass(MyEnum.MyValue);
Вы усложнили его слишком много. Давайте объединим все это.
Java 1.5 сообщения необходимо использовать Класс Enum Java:
public enum Color
{
BLACK, WHITE;
}
Пред Java 1.5 необходимо использовать безопасный с точки зрения типов Перечислимый шаблон:
public class Color
{
public static Color WHITE = new Color("white");
public static Color BLACK = new Color("black");
private String color;
private Color(String s)
{
color = s;
}
}
Обоими способами Вы называете его как так:
drawBackground(Color.WHITE);
А именно, относительно Вашего вопроса. Это - вопрос стиля кода, но я думаю, что предпочтительный путь состоит в том, чтобы сохранить перечисления в их отдельных классах. Особенно, после того как они начинают получать свои собственные методы как getName()
, getId()
, и т.д. Думайте о нем как о той же дилемме как регулярный класс по сравнению с анонимным классом, когда-то класс начинает быть нарушенным, пора выгнать его с квартиры в свой собственный файл.
Вы знали, что можно импортировать Ориентацию и сказать
MyClass myClass = new MyClass(Orientation.VERTICAL);
?
Это зависит от того, сколько значений перечисление может принять. В Вашем примере, только с двумя, я просто использовал бы булевскую переменную. Если перечисление будет только использоваться кодом, который Вы пишете и не должны будете взаимодействовать с большим количеством другого кода, возможно, Вам не нужна безопасность типов. Но если бы это находится в 'общедоступном' методе, я определенно пошел бы для перечислений и поместил бы перечисление в его собственный файл.
У Вас может также быть два статических метода для MyClass:
MyClass.Vertical() : MyClass
MyClass.Horizontal() : MyClass
Они возвратят новый экземпляр с надлежащим перечислимым набором.
Я соглашаюсь, что Вы были творческими, но я думаю, что это не практическое решение, и я думаю, что Вы просто сместили "уродство" к другой части кода. Что происходит, если в дополнение к ВЕРТИКАЛЬНОМУ и ГОРИЗОНТАЛЬНОМУ, у Вас также будут ДИАГОНАЛЬ, AA, BB, CC, и т.д.? Вы оказываетесь перед необходимостью копировать путем ввода каждой статической константы? Ваш вкус, что MyClass. Ориентация. ВЕРТИКАЛЬНЫЙ ужасно, могло бы быть персональным?