亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在 PHP 中聲明空變量?

是否可以在 PHP 中聲明空變量?

PHP
白衣非少年 2023-05-12 15:21:15
在 PHP 中有沒有明確的方法來聲明變量而不分配任何值?類似于 Java 或 Javascript?像這樣的東西。var $variable;我假設此變量的默認值為NULL. 如果不可能,是否有任何合乎邏輯的解釋為什么它沒有在 PHP 中實現?有很多文章的表格描述了isset,empty等的布爾結果。還有一個 value 的例子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)    |+------------------------------------------------------+--------------+-------------+---------------+https://www.virendrachandak.com/demos/php-isset-vs-empty-vs-is_null.php
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

PHP 沒有像 Javascript 的var. PHP 變量在首次分配時被初始化。這是一種設計選擇,無論好壞。要創建一個變量,你總是必須給它賦值。由于變量必須有一些值,而 PHP 的“無”值是null,因此您需要:


$variable = null;

(存在創建變量的替代方法,例如引用,例如:parse_str($foo, $bar); var_dump($bar);,但讓我們把它放在一邊。)


該var語句存在于 Javascript 中以確定作用域;Javascript 具有嵌套作用域,需要顯式初始化以確定變量的作用域。PHP 中的作用域以不同的方式工作并且沒有歧義,因此不需要這樣一個單獨的語句。最初 PHP 也非常喜歡隱式全局變量(事后看來這是一個糟糕的想法),這與首先顯式初始化語句的想法有點沖突。


var $var;(聲明的變量,但沒有值)


這是一個不完整/不正確的引用,它應該是"a variable declared but without a value in a class ",因為這是唯一var可以使用關鍵字的地方。


例如,Python 也使用賦值初始化,也有嵌套作用域。它使用不同的方法來解決這個問題:


foo = 42


def bar():

    foo = 69


    def baz():

        nonlocal foo

        foo = 2

Python 中的規則是,如果對函數內部的變量進行了任何賦值,則該變量是函數的局部變量。所以foo = 69在這里創建了一個新的局部變量bar。要允許從繼承范圍對變量進行賦值,必須使用nonlocalor關鍵字顯式表示該變量是繼承的。這里重新分配,但都不重新分配。globalfoo = 2foo = 69foo = 42


查看完整回答
反對 回復 2023-05-12
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

沒有var關鍵字的工作方式與 javascript 中的相同。

注意:與其他編程語言不同,PHP 沒有用于聲明變量的命令。它是在您第一次為其賦值時創建的。


你的另一個問題:

如果不可能,是否有任何合乎邏輯的解釋為什么它沒有在 PHP 中實現?

一種合乎邏輯的解釋是,在 PHP 中,所有變量都以$符號開頭。因此 PHP 無需聲明即可立即知道什么時候是變量而不是函數或關鍵字。

事實上,javascript 代碼也可以不使用聲明,但在這里,大多數情況下仍然推薦使用它們。


如果要null在 PHP 中聲明一個變量并將其值設置為,只需使用:

$myVar?=?null;


查看完整回答
反對 回復 2023-05-12
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

您可以在不顯式的情況下進行null:


class BarClass {

? ? private FooClass $foo;

作為簡單變量,你不能。使用$variable = null(或根本不寫)。由于默認情況下所有未設置的變量均為 null:


$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)


查看完整回答
反對 回復 2023-05-12
  • 3 回答
  • 0 關注
  • 241 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號