php里命名一个变量以$符打头,后面跟变量名称,和其他很多语言一样,变量名只能以字母、数字、下划线组成,不能包含空格、标点符号、运算符等其它符号,不能使用程序语言关键字作为变量,按照规范的来讲的话变量名称应该要精简,且有寓意.
PHP变量名长度是不受限制的.
可以任意的长.
回答了把,不过建议开发时候还是采取比较容易理解和简短的名字.
变量用于存储值,比如数字、文本字符串或数组.
一旦设置了某个变量,我们就可以在脚本中重复地使用它.
PHP 中的所有变量都是以 $ 符号开始的.
在 PHP 中设置变量的正确方法是:
$var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号.如果那样做的话,变量将是无效的.
让我们试着创建一个存有字符串的变量,和一个存有数值的变量:
如果对于变量和常量的定义,你会注意几个方面呢?你可能会想到:
如何定义变量,它和C# 等语言有什么不同呢?
变量区分大小写吗?
PHP的变量还有其他重要的吗?
常量和变量的定义一样吗?
分别讲述吧.
①如何定义变量,它和C# 等语言有什么不同呢?
PHP 中的变量用一个美元符号后面跟变量名来表示.变量名是区分大小写的.例如:
php教程
$var='Jim';
$VAR='Kimi;
echo "$var,$VAR";//输出"Jim,Kimi"
你可能还关心变量的命名,其实和大多数语言一样.
如 1里说的,区分大小写.
预定义变量
预定义变量在PHP是一个重要的概念. PHP 提供了大量的预定义变量.由于许多这些变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档.一些预定义变量在 PHP 以命令行形式运行时并不生效.
下表是PHP的超全局变量:
超全局变量
描述
$_SERVER 变量由 web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用).
$_GET 经由 URL 请求提交至脚本的变量.类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用).
$_POST 经由 HTTP POST 方法提交至脚本的变量.类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用).
$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量.类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用).
$_FILES 经由 HTTP POST 文件上传而提交至脚本的变量.类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)
$_ENV 执行环境提交至脚本的变量.类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用).
$_SESSION 当前注册给脚本会话的变量.类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用)
变量的应用范围
每个变量都有应用范围,那么PHP是怎么定义的呢?还是先看看下面代码吧:
①. ?php
①.0 ?你认为以上的代码会显示什么结果呢?
如果你认为是下面:
结果1:
The 1 number is 1
其实正确的结果应该是:
那么还有没有其他方法呢?答案是肯定的.
代码如下:
①.1 ?代码有什么特殊的吗?那就是用到了$GLOBALS这个超全局变量.
PHP也有静态变量的说法.不过静态变量一般用在函数里,只能是局部变量了.看看下面代码吧:
①.0 ? 结果为
PHP还有一个相当令人兴奋的特性:可变变量
所谓可变变量,就是一个变量的变量名可以动态的设置和使用.
看看下面的例子:
变量就这多了.下面看看常量.
常量
PHP的常量是不是前面加const呢?让我们看一看.
不是的.在PHP必须用下面的方式定义.
bool define ( string name, mixed value [, bool case_insensitive] )
name 为常量名,value为常量的值.case_insensitive]为大小写敏感.默认为敏感.例如:
①.0 ?
常量和变量不同:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量.
实例
php
$txt = "Hello World!";
PHP 是一门松散类型的语言(Loosely Typed Language)
在 PHP 中,不需要在设置变量之前声明该变量.
在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型.
根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型.
在强类型的编程语言中,您必须在使用前声明变量的类型和名称.
在 PHP 中,变量会在使用时被自动声明.
//引用
$one="test";
two=$one;//相当于传地址,两个变量指向一个地址
//动态变量
$one="######";
$two="one";
$three="two";
echo $three."br";//输出"two"
echo $$three."br";//输出"one"
echo $$$three."br";//输出"######"
// bool boolean
// float,double,real
// string
// object
// 空类型 null
//整数的声明
$int=10; //十进制声明
$int=0xff;//十六进制声明
//一下都是false的情况
$bool=false;
$bool=0;
$bool=0.000;
$bool=null;
$bool="";
$bool=" ";
$bool="0";
$bool=array();
//字符串的声明
//1.单引号和双引号都可以声明字符串
$str='aaaaa';
$str="aaaa";
//定界符声明字符串,大量字符串
//test是自定义的一个字符串,后面不能有任何字符,空格也不可以
//也要以test这个自定义的字符串结束,结束前不能有任何字符
$str=test
this write content......
test;
第一个问题的确需要仔细分析:
①首先,你得知道,在双引号中的字符串输出时,变量必须得用它的值取代:如$a=100;
就有"$a"="100";
②其次,php在读双引号中的内容时,一旦遇到$,就希望找到一个最可能的变量.现在看"A banana is $fruits[banana].";这一句,php顺着$往下找找到了[,[是数组索引的标志,如果在找到与之配对的]之前不出现非法字符,php很自然的就把整个式子$fruits[banana]当成了整个变量,所以这样写是对的
③与②对应的"A banana is $fruits['banana'].";错在哪应给就清楚了吧?php找到[之后,觉得这是个数组,但紧接着它又找到了',这是他不能够接受的,如果它仍旧把$fruits['banana']当做变量,就会出现变量名字里边出现非法字符'和'的错误.注意这些都是在双引号里边给以讨论的
④那为什么 "A banana is {$fruits['banana']}."; 就可以呢?因为{}的意思我们应该都了解的,用在语法里边{}就像是一个个语句岛,除了全局变量和常量,{}里边的东西和{}外边的东西基本是隔绝的,也就是说{}里边的语法是不受外边的双引号影响的.所以写法就符合平常的语法了
⑤其实{$fruits['banana']}是正确的而{$fruits[banana]}是错误的,但为什么php不报错呢?对php而言,数组的[]里边只能是字符串和int值,那么$fruits[banana]是什么呢?php里边带$的是变量,加单引号或者双引号的是字符串,那么banana会是什么呢?对了,是常量!php觉得你这里写的banana是个值可能为int或字符串的常量,所以它觉得写的挺合理的.但是你实际上并没有定义这个常量,所以肯定会出错的
至于你的第二个问题,这是php的字符串连接问题.$fruits['banana']的值是一个字符串,那么当你把它和另一个字符串"echo A banana is "接在一起的时候肯定的需要特定的符号了.一般的语言用的是◆,php用的是.
你直接打印这个字符串当然是可以的了.
怎么样?解释的够清楚吧?可以给分了吧?呵呵,打字快累死了,要劳有所得啊,还有什么问题的话联系我,我们再讨论!
把这部分改成指定值并隐藏,就可以了.
!--li?strong网址/strong--
input?id="tougao-url"?class="input-block-level"?type="hidden"?value="http://你设置的URL"?size="100"
仅供参考,更多,可以查看
PHP 提供了大量的预定义变量.由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档.一些预定义变量在 PHP 以命令行形式运行时并不生效.有关这些变量的详细列表,请参阅预定义变量一章.
Warning
如果有可用的 PHP 预定义变量那最好用,如超全局变量.
Note: 可变变量 超级全局变量不能被用作可变变量.
Note: 尽管超全局变量和 HTTP_*_VARS 同时存在.但是他们并不是同一个变量,所以改变一个的值并不会对另一个产生影响.
如果某些 variables_order 中的变量没有设定,它们的对应的 PHP 预定义数组也是空的.
PHP 超全局变量
$GLOBALS
$_SERVER
变量由 web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用).
$_GET
经由 URL 请求提交至脚本的变量.类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用).
$_POST
经由 HTTP POST 方法提交至脚本的变量.类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用).
$_COOKIE
经由 HTTP Cookies 方法提交至脚本的变量.类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用).
$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量.类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用).详细信息请参阅 POST 方法上传.
$_ENV
执行环境提交至脚本的变量.类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用).
$_REQUEST
Caution
Note: 当运行于命令行模式时,此数组将不会包含 argv 和 argc 条目;它们已经存在于数组 $_SERVER 中.
$_SESSION
当前注册给脚本会话的变量.类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用).