Вы должны выбрать первый. Они не имеют никакой разницы, кроме производительности, первая из которых будет быстрой в сравнении второго.
Если переменная внутри двойной кавычки PHP занимает время для разбора переменной.
Check out Одиночные кавычки или двойные кавычки для конкатенации переменных?
Это еще один пример . Есть ли однократная цитата с преимуществами производительности против двойной цитаты в php?
Я не понял, почему этот ответ в ссылке выше, и почему этот ответ получил downvote.
Как я сказал то же самое.
Вы можете посмотреть здесь также
Чтобы проверить наличие локальной переменной:
if 'myVar' in locals():
# myVar exists.
Чтобы проверить наличие глобальной переменной:
if 'myVar' in globals():
# myVar exists.
Чтобы проверить, есть ли у объекта атрибут:
if hasattr(obj, 'attr_name'):
# obj.attr_name exists.
Конструкторы такие же. Причина, по которой я предпочел бы второй вариант, заключается в том, что он позволит вам удалить символы подчеркивания из имен личных переменных и сохранить контекст (улучшая понятность). Я стараюсь всегда использовать this
при обращении к переменным и свойствам экземпляра.
Я больше не использую ключевое слово this
таким образом после того, как перешел в другую компанию с другим стандарты. Я привык к нему и теперь редко использую его, когда обращаюсь к членам экземпляра. Я все же рекомендую использовать свойства (очевидно).
Моя версия вашего класса:
class Life
{
//Fields
private string person;
private string partner;
//Properties
public string Person
{
get { return this.person; }
set { this.person = value; }
}
public string Partner
{
get { return this.partner; }
set { this.partner = value; }
}
public Life()
{
this.person = "Dave";
this.partner = "Sarah";
MessageBox.Show("Life Constructor Called");
}
}
или, что еще лучше,
Использование try / except - лучший способ проверить существование переменной. Но почти наверняка есть лучший способ делать то, что вы делаете, чем установка / тестирование глобальных переменных.
Например, если вы хотите инициализировать переменную уровня модуля при первом вызове какой-либо функции, вы лучше использовать такой код:
my_variable = None
def InitMyVariable():
global my_variable
if my_variable is None:
my_variable = ...
catch
в Python называется , кроме
. в остальном это нормально для таких простых случаев. Существует ошибка AttributeError
, которую можно использовать для проверки наличия у объекта атрибута.