Php create empty var

Можно ли в PHP объявить пустую переменную?

Есть ли в PHP какой-либо явный способ объявить переменную без присвоения какого-либо значения? Аналогично Java или Javascript? Что-то вроде этого.

Я предполагаю, что значение по умолчанию для этой переменной будет NULL . Если это невозможно, есть ли какое-нибудь логическое объяснение, почему это не было реализовано в PHP?

Есть много статей с таблицами, отображающими логические результаты isset , empty и т. д. А еще есть пример значения var $var; (a variable declared, but without a value) , а есть ли смысл перечислять?

+------------------------------------------------------+--------------+-------------+---------------+ | Value of variable ($var) | isset($var) | empty($var) | is_null($var) | +------------------------------------------------------+--------------+-------------+---------------+ | NULL | bool(false) | bool(true) | bool(true) | | var $var; (a variable declared, but without a value) | bool(false) | bool(true) | bool(true) | +------------------------------------------------------+--------------+-------------+---------------+ 

3 ответа

Здесь нет var ключевое слово, которое работает так же, как в javascript. Из w3schools:

Примечание. В отличие от других языков программирования, в PHP нет команды для объявления переменной. Он создается в тот момент, когда вы впервые присваиваете ему значение.

Если это невозможно, есть ли какое-нибудь логическое объяснение, почему это не было реализовано в PHP?

Логическим объяснением может быть то, что в PHP все переменные начинаются с $ символ. Таким образом, PHP сразу знает, когда что-то является переменной, а не функцией или ключевым словом, без необходимости объявления.

Фактически, код javascript также работает без объявлений, но здесь они по-прежнему рекомендуются в большинстве случаев.

Если вы хотите объявить переменную и установить для нее значение null в PHP просто используйте:

В PHP нет явного оператора для инициализации переменных, как в Javascript var . Переменные PHP инициализируются при первом назначении. Хорошо это или плохо — это выбор дизайна. Чтобы создать переменную, вам всегда нужно что-то ей присвоить. Поскольку переменная должна иметь какое-то значение, а значение PHP «ничего» равно null , вы хотите:

(Существуют альтернативные способы создания переменных, например ссылки, например: parse_str($foo, $bar); var_dump($bar); , но оставим это в стороне.)

В var оператор существует в Javascript для определения области действия; Javascript имеет вложенные области видимости и требует явной инициализации для определения области видимости переменной. Область видимости в PHP работает по-другому и не имеет такой двусмысленности, поэтому в таком отдельном заявлении нет необходимости. Первоначально PHP также очень любил неявные глобальные переменные (ужасная идея в ретроспективе), что несколько противоречит идее явных операторов инициализации в первую очередь.

var $var; (объявленная переменная, но без значения)

Это неполная / неправильная цитата, это должна быть «объявленная переменная, но без значения в классе«, поскольку это единственное место, где var ключевое слово может быть использовано.

Например, Python также использует инициализацию по назначению, а также имеет вложенную область видимости. Для решения этой проблемы используется другой подход:

foo = 42 def bar(): foo = 69 def baz(): nonlocal foo foo = 2 

Правило в Python заключается в том, что переменная является локальной для функции, если для переменной внутри функции выполняется какое-либо присвоение. Так что foo = 69 создает новую локальную переменную внутри bar Вот. Чтобы разрешить присвоение переменной из унаследованной области, nonlocal или global ключевое слово должно использоваться для явного обозначения этой переменной как унаследованной. foo = 2 здесь переназначает foo = 69 , но не переназначает foo = 42 .

Источник

Is it possible to declare empty variable in PHP?

I have the following PHP code, and for the life of me I can’t think of a simple & elegant way to implement around the empty() function in python to check if the index is defined in a list.

$counter = 0; $a = array(); for ($i=0;$i <100;$i++)< $i = ($i >4) ? 0 : $i; if empty($a[$i]) < $a[$i]=array(); >$a[$i][] = $counter; $counter++; > 

then I get index out of range. However I am aware of ways to do it in multiple steps, but that’s not what I wanted.

PHP Arrays and Python lists are not equivalent. PHP Arrays are actually associative containers:

An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more.

In Python, the map data structure is defined as a dictionary:

A mapping object maps hashable values to arbitrary objects. Mappings are mutable objects. There is currently only one standard mapping type, the dictionary.

The empty() function serve many purposes. In your use context, it is equivalent to the Python in operator:

>>> a = <> >>> a[1] = "x" >>> a[3] = "y" >>> a[5] = "z" >>> i = 3 >>> i in a True >>> i = 2 >>> i in a False 

In the event you were trying to do it with a list, you would have to actually set that index to none, otherwise the element wouldn’t be there you’d possibly be trying to check an index past the end of the list.

>>> i = [None] >>> i [None] >>> i = [None, None] >>> i [None, None] >>> i[1] is None True 
# variable may not exsists if (variable in vars() or variable in globals()) and variable != "" and variable == False: pass 

PHP empty function in python, PHP Arrays and Python lists are not equivalent. PHP Arrays are actually associative containers: An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of … Code sample>>> a = <>>>> a[1] = «x»>>> a[3] = «y»>>> a[5] = «z»>>> i = 3Feedback

Is it possible to declare empty variable in PHP?

Is there any explicit way in PHP to declare variable without assigning any value? Similarly to Java or Javascript? Something like this.

I assume that default value for this variable would be NULL . If it’s not possible, is there any logical explanation why it wasn’t implemented in PHP?

There are many articles with tables depicting boolean results of isset , empty , etc. And there is also an example of value var $var; (a variable declared, but without a value) , but does it make sense to list it?

+------------------------------------------------------+--------------+-------------+---------------+ | Value of variable ($var) | isset($var) | empty($var) | is_null($var) | +------------------------------------------------------+--------------+-------------+---------------+ | NULL | bool(false) | bool(true) | bool(true) | | var $var; (a variable declared, but without a value) | bool(false) | bool(true) | bool(true) | +------------------------------------------------------+--------------+-------------+---------------+ 

PHP doesn’t have an explicit statement to initialise variables, like Javascript’s var . PHP variables get initialised when they’re first assigned to. It’s a design choice, for better or worse. To create a variable you always have to assign something to it. Since a variable must have some value and PHP’s value for «nothing» is null , you want:

(Alternative ways to create variables exists, like references, e.g.: parse_str($foo, $bar); var_dump($bar); , but let’s leave that aside.)

The var statement exists in Javascript to determine scope; Javascript has nested scopes and needs an explicit initialisation to determine what a variable’s scope is. Scoping in PHP works differently and doesn’t have that ambiguity, hence such a separate statement isn’t necessary. Originally PHP also liked implicit globals a lot (a terrible idea in hindsight), which somewhat clashes with the idea of explicit initialisation statements in the first place.

That is an incomplete/incorrect quote, it should be «a variable declared but without a value in a class « , since that’s the only place the var keyword can be used.

As an example, Python also uses initialisation-by-assignment, and also has nested scope. It uses a different approach to resolve this:

foo = 42 def bar(): foo = 69 def baz(): nonlocal foo foo = 2 

The rule in Python is, that a variable is local to a function if any assignment is done to the variable inside the function. So the foo = 69 creates a new local variable inside bar here. To allow assignment to the variable from an inherited scope, the nonlocal or global keyword must be used to explicitly denote that variable as inherited. foo = 2 here reassigns foo = 69 , but neither reassigns foo = 42 .

There is no var keyword which works the same way as in javascript. From w3schools:

Note: Unlike other programming languages, PHP has no command for declaring a variable. It is created the moment you first assign a value to it.

If it’s not possible, is there any logical explanation why it wasn’t implemented in PHP?

One logical explanation could be that in PHP all variables start with a $ symbol. So PHP immediately knows when something is a variable and not a function or keyword, without the need for a declaration.

In fact, javascript code also works without declarations, but here, they are still recommended in most cases.

If you want to declare a variable and set its value to null in PHP, just use:

In class context you can make it without explicit null :

As simple variable, you can’t. Use $variable = null (or do not write it at all). As all not set vars are null by default:

$var1 = null; var_dump(isset($var1), empty($var1), is_null($var1)); // bool(false), bool(true), bool(true) var_dump(isset($var2), empty($var2), is_null($var2)); // Notice: Undefined variable: var2 - From `is_null` // bool(false), bool(true), bool(true) 

Is it possible to declare empty variable in PHP?, The rule in Python is, that a variable is local to a function if any assignment is done to the variable inside the function. So the foo = 69 creates a new local variable inside bar here. To allow assignment to the variable from an inherited scope, the nonlocal or global keyword must be used to explicitly denote …

Best way to initialize empty array in PHP

Arrays in PHP: Use array() Function to create an array in PHP. There are three types of array supported in PHP:

  • Indexed arrays: Arrays having a numeric index.
  • Associative arrays: Arrays having named keys.
  • Multidimensional arrays: It contains one or more array in particular array.

Note: Why it is always good practice to declare an empty array and then push the items to that array?
When declare an empty array and then start entering elements in it later. With the help of this, it can prevent different errors due to a faulty array. It helps to have the information of using bugged, rather having the array. It saves time during the debugging. Most of the time it may not have anything to add to the array at the point of creation.

Syntax to create an empty array:

$emptyArray = []; $emptyArray = array(); $emptyArray = (array) null;

While push an element to the array it can use $emptyArray[] = “first”. At this time, $emptyArray contains “first”, with this command and sending “first” to the array which is declared empty at starting.

In other words, the initialization of new array is faster, use syntax var first = [] rather while using syntax var first = new Array() . The fact is being a constructor function the function Array() and the, [] is a part of the literal grammar of array. Both are complete and executed in completely different ways. Both are optimized and not bothered by the overhead of any of the calling functions.

Basic example of empty array:

Источник

Читайте также:  What is css programing
Оцените статью