2013-12-04 2 views
0

мне было интересно, если есть более короткий путь, чтобы выполнить это, если условие:Можно ли укоротить isset() и == в PHP?

if(isset($somVar) && $someVar == 'some value') 

Я попытался:

if($someVar === 'some value') 
+2

... объявить '$ somVar' заранее? – Izkata

+1

php может обрабатывать вещи просто отлично без 'isset', но если вы его удалите, php даст вам уведомление, которое в основном является способом php сообщать вам« эй, я действительно не забочусь об этом », но думал Я должен сказать вам все равно, на случай, если вы захотите более подробно рассказать о вещах ... ». Не очень важно, если у вас есть сообщение об ошибке, отключенное для предупреждений. –

+2

Он дает только уведомление, а не предупреждение, и уведомления обычно являются хорошим предупреждающим знаком опечаток в именах переменных. Поэтому отключение их в разработке - это плохо, потому что вы спрячете потенциальные ошибки. Также лучше не использовать неэксентирующие переменные, потому что, если вы объявите их, ваш код станет легче читать и понимать. Вы не используете какую-либо переменную из ничего, и никто не может сразу увидеть, что в ней. – Sven

ответ

2

Если вы можете убедиться в том, что $someVar всегда существуют, вы можете пропустить isset() части - в противном случае вы получите уведомление PHP, если переменная не существует.

Также обратите внимание, что существует существенная разница между == и ===.

Поэтому я пришел к выводу, что вы не можете сократить это выражение.

0

Насколько я знаю, что есть на самом деле не другой «чистый» способ, однако ...

  1. Вы можете отключить error reporting

  2. В качестве альтернативы, вы можете объявить переменную заранее

    $somVar = null; 
    
    // do what you must 
    
    if ($somVar == 'some value') ... 
    
  3. В-третьих, вы могли бы manually suppress сообщения об ошибках (работает в php 5.5)

    if (@$someVar == 'some value') ... 
    
+0

Nr 2 бесполезен, так как он перезаписывает ваш var. Nr 3 не соответствует действительности. –

+0

Я только что пробовал nr 3, и он работает в PHP 5.5. –

+0

Я только что пробовал nr 3 в phpfiddle, и он все еще выдавал предупреждение. Учитывая, phpfiddle использует php 5.3 –

Смежные вопросы