php 定义变量为什么前面加一个美元($)符号呢

本文探讨了PHP中变量以美元符号($) 开头的原因。通过网友的观点分享,总结出这种设计使得变量易于识别,有助于提高代码的可读性和解析效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php 定义变量为什么前面加一个美元($)符号呢

对于这个问题我也一直迷惑! 今天分享一下关于这个问题网友的诠释:

网友1:

    表示“非”被用到判断中了if(!isset...)
  被用到防止SQL输出错误信息了
   常用的注释符号,UNIX系统下#有它的重大意思
  被用作SQL模糊匹配和ASP程序
    被用作正则中了
   就更不用说了,被表示成and($a && $b)
    这个符号更不能用了,还记得SQL语句中的SELECT * 吗?
()   也是不合理的,要不然你得判断语句还怎么写
-+ 这属于运算符号,也不能用
';   之类的就更别提了。。。

你看看,PHP除了用$符号还有什么好的选择?

网友2:

刚开始的时候觉得可以在双引号里直接写变量很爽。没个符号标识在前面估计很难判断。

网友3:

个人认为这样写的好处就是所有的变量到眼前就一目了然,比起不用符号的话,感觉很清晰

网友4:

看PHP代码就看到很多dollar

集中一个看法,也就这几种了! 我想主要的原因在于 使变量更加的显而易见, 让程序更容易让程序读懂, 也更容易让php服务器解释, 节节约时间

在JSP(Java Server Pages)中,如果你定义一个方法,其目的是每次页面刷新时变量计数值一,但变量没有按预期初始化,可能是因为以下几个原因: 1. 页面载时的生命周期问题:在JSP页面中,当页面被请求时,会创建一个对应的Servlet实例。在这个过程中,JSP页面被转换成Servlet类,并编译执行。如果变量是在一个方法中定义并初始化的,那么这个方法不会在每次页面刷新时都执行,除非这个方法是被显式调用的。通常情况下,只有在JSP页面第一次被请求时,才会执行页面上的代码块,包括变量的初始化。 2. Servlet的单实例多线程模型:JSP页面转换成的Servlet是单实例多线程的。这意味着所有的请求共享同一个Servlet实例,但每个请求都有自己的线程。如果变量是作为实例变量(非局部变量定义的,那么它的值会在多个请求之间保持。但如果每次刷新你都希望变量重新初始化为一,你需要在每次请求处理的开始阶段就重置变量的值。 3. 缺乏页面初始化机制:在标准的JSP中没有内置的方法来触发页面的初始化(除非重新部署整个应用或者重启服务器)。如果你需要在每次请求时都重置一个变量,你可能需要将变量定义在请求范围(request scope)或会话范围(session scope),并且在每次请求处理逻辑中显式地设置变量的初始值。 为了确保每次刷新页面时变量能够重新初始化为一,你可以将变量定义为请求范围的属性,并在页面顶部的脚本片段中设置它: ```jsp <% request.setAttribute("counter", 0); // 初始化计数器变量 %> <html> <head><title>Counter Page</title></head> <body> <% int counter = (Integer)request.getAttribute("counter"); // 获取当计数器值 counter++; // 计数器一 request.setAttribute("counter", counter); // 重新设置计数器值 %> <p>Current Counter Value: <%= counter %></p> <!-- 其他页面内容 --> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值