<?php
php代码
?>//下面这个也可不写
echo "<p>测试函数外变量:<p>"; //双引符或单引符的效果都是一样,无差异
echo '<p>sss测试函数外变量:<p>';
echo $biaos= '单引号 </br>'; //都可以正常输出 ,字符串可以用单引号或双引号 一样的效果
echo $biao ="双引号 </br>";
//对于字符串类型的数据
$str123 = "这是字符串变量";
echo "$str123"; //打印:这是字符串变量 双引号输的是变量的值
echo '$str123'; //打印:$str123 单引号输出的是字符串
echo "---------<br>";
echo "string123"; //打印:string123 输出的都是字符串
echo 'string456'; //打印:string456 输出的都是字符串
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
define(常量名,常量值)
<?php
define('MY_NAME','PHP中文网');
echo MY_NAME;
//下面是错误的调用方式
echo '我的名字是MY_NAME';
//正确的调用方式该这么写
echo '我的名字是' . MY_NAME; //在字符串中调用常量的时候,常量必须在引号外面
?>
echo 中国试试看,试一下吧,感谢PHP;
echo "<br>中国试试看,试一下吧,感谢PHP</br>";
echo aabb;
上面三条语句都可以正常打印出来,但是IDE工具会有提示此语句是未被定义的常量,
Undefined constant aabb
Undefined constant中国试试看,试一下吧,感谢PHP
所以如果你是这下面这样定义:
const xxx = "this is php const";
echo xxx; //这是完全OK的,
----------------------
define('xiaoxie',true);
echo "buer =".xiaoxie;
输出是:1,
echo同时打印多个变量时(.为PHP的连接运行符,与java中的 +连接符 机制一样)
$x = 123; $y = 345; $aaa = "san"; $bbb = "cai"; function mytestString(){ //echo $GLOBALS['aaa'].$GLOBALS[bbb]; //输入sancai //PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
global $aaa,$bbb; echo $aaa.$bbb; //输出:sancai echo "<br>"; echo "$aaa$bbb"; //输出:sancai echo "<br>"; echo "$aaa.$bbb"; //输出:san.cai echo "<br>"; echo "$aaa,$bbb"; //输出:san,cai echo "<br>"; echo $aaa." ---- ".$bbb; //输出:san ---- cai echo "<br>"; } function mytest(){ global $x,$y; echo "$x.$y"; 输出:123.456 echo "<br>"; echo $x.$y;输出:123456 echo "<br>"; echo "$x,$y";输出:123,456 }
PHP中的echo语句可以显示多个变量,使用逗号分割就可以,例如下面的语句显示变量$a,$b,$c:
echo $a, $b, $c;
运行会发现,上面三个变量的值会连在一起出现,因此一般情况下可以如下添加分隔符(例如空格):
echo $a, ' ', $b, ' ', $c;
这样的语句,其实是显示了三个变量、两个常量。
此外,多个变量还可以放在字符串里面,组合为一个串进行输出,例如:
echo "$a, $b, $c";
(1) PHP 会解析双引号中的变量,而不会解析单引号中的变量。也就是说,如果使用单引号定义的字符串中出现变量,在输出时变量会被原样输出,不会解析成变量的值。
(2) 但是如果变量后边还有字符串的话,就需要将变量与后面的字符串使用空格分开,或者使用大括号{ }
将变量包裹起来。如果不这么做的话,很可能会造成意想不到的结果。
这里总结了一下 PHP 中使用引号的原则,如下所示:
- 在 PHP 代码中尽量用单引号;
- 字符串中包含变量的时候,使用双引号可以简化操作;
- 如果字符串比较复杂且包含变量时,将变量使用大括号包裹起来;
- 字符串中不需要加入变量或者单引号
'
和反斜杠\
时,尽量用单引号定义字符串。
总结
一、常量和变量有如下不同:
1、常量前面没有美元符号($)
2、常量只能通过define()函数定义,而不能通过赋值语句
3、常量可以不用理会变量的作用域在任何地方定义和访问
4、常量一旦定义就不能重新定义或取消定义
5、常量的值只能是标量(boolean、integer、float和string)
const和define的区别
1、const是一个语言结构;const定义的常量是大小写敏感。而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false
define('PI', 3.14, true);
2、const简单易读,编译时要比define快很多。
3、const可在类中使用,用于类成员常量定义(在php5.3.0以后,可以使用const关键字在类定义的外部定义常量),定义后不可修改,const在类内定义常量,并且const必须通过类名::变量名来进行访问;define不能在类中使用,可用于全局变量
4、const是在编译时定义,因此必须处于最顶端的作用区域,const不能在函数,循环及if条件中使用;而define是函数,也就是能调用函数的地方都可以使用
5、const只能用普通的常量名,define常量名中可以有表达式
6、const定义的常量只能是静态常量,define可以是任意表达式
echo与print,var_dump()和print_r()的区别
1.echo 和 print 的区别
共同点:首先echo 和 print 都不是严格意义上的函数,他们都是 语言结构;他们都只能输出 字符串,整型跟int型浮点型数据。不能打印复合型和资源型数据;
而区别是:echo 可以连续输出多个变量,而print只能一次输出一个变量。print打印的值能直接复制给一个变量,如 $a = print “123”;
而echo 不可以,它没有像函数的行为,所以不能用于函数的上下文。在使用时,echo() 函数比 print()速度稍快。
2.var_dump()和print_r()的区别
共同点:两者都可以打印数组,对象之类的复合型变量。
区别:print_r() 只能打印一些易于理解的信息,且print_r()在打印数组时,会将把数组的指针移到最后边,使用 reset() 可让指针回到开始处。 而var_dump()不但能打印复合类型的数据,还能打印资源类型的变量。且var_dump()输出的信息则比较详细,一般调试时用得多。