php申明变量的疑惑

自己是前端,最近想了解一下php,在学习手册上遇到:

$boo = true;
if($boo == true){
    echo '变量为真';
}

我的疑惑是:php中变量的申明是$+变量名,调用也是?这是为什么?
(js中,var一个对象,var的这个对象实际是一个指向路径,调用该对象直接调用对象的名称就可以,而不是var name,这会又从新申明一个对象),我的意思是说,php中调用$boo不是又申明一个变量了吗?

阅读 3.6k
6 个回答

如果我说,这是语法规定,照着用吧。是不是会打我。

PHP 声明变量又不需要关键字。
好比 JS 声明变量需要关键字 var、let ,但是完全不加直接声明也能使用呀

只不过变量名要加个 $ 前缀罢了,这个是整个变量名

简单的理解就是PHP中不用特意申明变量.
跟JS差不多.
变量如果存在就指向存在的变量,不存在就会自动创建.
$符号是代表紧跟在后面的内容是变量.

PHP 变量规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z0-9 以及 _
  • 变量名称对大小写敏感($y$Y 是两个不同的变量)

对于PHP来说,在使用一个变量时,我们不需要声明,也不需要初始化,直接对其赋值就可以使用.

参考:
http://www.w3school.com.cn/ph...
http://www.php-internals.com/...

语法解析时不同.
js 是查到 var 关键字, 然后将后面的字符定为指向那块内存的名称.
php 是查到 $+变量名, 然后将 $+变量名 作为内存的名称.

PHP中的变量是用美元符号($)作为前缀的标示符,标识符是一个标识不同对象的符号
由于PHP是一种弱类型语言,在声明变量时,不需要显示声明变量,变量可以存放任何类型的值,在PHP中,变量在运行时进行类型检查,并且可以用另一个不同类型的值取代变量的值。
$foo 这个是PHP变量的写法,可以直接拿来使用。PHP是一种弱类型语言不需要显示声明变量

php没有var,let这样的关键字,php要求以$开头定义变量名称是一种语法约定。
楼主请清空自己大脑的概念,不要把js里的东西生搬硬套到另外一种语言,这对你理解另外一种语言只会有阻碍

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题