PHP基础语法之变量

变量的使用

<?php
/*变量的使用*/
/*该例子没有使用<br>换行,因此在浏览器中访问时需要浏览源代码*/
$name = "is my name;\n"; //直接赋值,此处使用双引号
$name1 = 'is my name1\n'; //直接赋值,单引号,此处输出会发现这条语句没有换号,因此''不解析变量与换行符
echo $name; //对变量进行输出,无括号
echo($name1); //对变量进行输出,有括号,此时效果是一样的,注意的是

//注意的是echo 不是函数而是语法构造器,不能被函数进行调用

$name2 = $name . $name1; //使用.号对两个字符串变量进行链接,等同于java或js中的+

echo "\n"; //单独输出一个字符串
echo $name . $name1; //和下面一条相比,这两条语句输出的内容均是一样的
echo $name, $name1; //但第一条进行了字符串连接,增加了一个操作,没有下面的效率高。

$id = 11; //这样表示$id是一个数
echo $id, "\n"; //输出$id的数值,并且在输出$id之后输出一个换行符
echo $id + 10; //此时会输出21

$myid = $id . " is my 5555\n"; //这样$myid变量会得到一个字符串
echo $myid; //输出变量

$id = $id . $myid; //这样原本是一个数字的$id会转换成一个字符串
echo $id + 10, "\n"; //此时会输出1121,原因在于,在进行加法运算时,会自动将字符串转为数字,而上一个字符串中的后一段被省略得到值1111

$float = ($id + 10) . ".11"; //此时生成了一个新的变量,.的优先级比+高
echo $float, "\n"; //输出,此时任然是一个字符串
var_dump($float); //查看float信息
echo $float /= 5; //进行除法运算并输出,该语句等效于echo $float = $float/5;
var_dump($float); //此时可以发现$float类型改变为浮点类型
?>

变量类型判断

<?php
/* 变量类型判断 */

//该条语句表示告诉浏览器当前页面编码为utf-8,为text/html类型,可以防止浏览器显示乱码
header("Content-Type: text/html; charset=utf-8");

$name = "is my name."; //定义字符串
var_dump($name); //会输出该变量的详细信息,string 'is my name.' (length=11)
//意思是说,检测到$name,是一个string 类型数据,内容为is my name,长度为11

$int = 15; //定义整形
$float = $int / 0.3; //计算出一个浮点型
$bool = $int > $float; //得出一个布尔类型

var_dump($int); //通过类型输出可以很清楚的发现,这几个变量的类型
var_dump($float); //但关键是如何判断,为什么要判断
var_dump($bool);

if (is_int($int)) //整型判断函数
    echo "这是整型判断函数,判断为真<br>\n";
else
    echo "整型判断为假<br>\n";

if (is_float($float)) { //浮点判断函数
    echo "浮点判断为真<br>\n";
} else {
    echo "浮点判断为假<br>\n";
}

if (is_bool($bool)) //布尔类型判断函数
    echo "布尔类型为真<br>\n";
else
    echo "布尔类型为假<br>\n";
?>

变量比较与判断

<?php
/* 变量比较与判断 */

//此处设置页面类型为plain,表示纯文本,就是告诉浏览器不要解析该页面,相当于查看网站源码的效果
header("Content-Type: text/plain; charset=utf-8");

$id1 = "10"; //这是一个字符串变量,值为10
$id2 = "10.0"; //这也是一个字符串,值为10.0
if ($id1 == $id2) //这里得出的结果是值相等,但这是两个字符串,绝对是不等的,因此需要另一种判断
    echo "值相等";
else
    echo "值不等";
echo "\n";

if ($id1 === $id2) //这里使用了,3个等于号来进行判断,此时得出的结果为后者
    echo "两者完全相等";
else
    echo "两者不一定完全相等";
echo "\n"; //输出换行将分割

$id1_int = $id1 + 0; //此时$id1可转换为一个整型变量
var_dump($id1_int); //此时会输出一段html代码,仔细观察会发现 确实是int类型
echo "\n";
$id2_float = $id2 + 0; //原本$id2是一个带点的字符串,因此转换后会成为一个float类型
var_dump($id2_float);
echo "\n";

if ($id1_int !== $id2_float) //注意,此处用的!==,表判断不完全一样,与===相反
    echo "确定不完全相等"; //输出该行在于 两者类型不一致
else
    echo "变量值完全一样";

//输出两者,此处使用了两种连接符号,会发现输出的内容一致,并没有小数点0
echo "\n", $id1_int, " " . $id2_float, ($id1_int == $id2_float) ? " 两者大小一致" : "两者值不同";

echo "\n" . ((1 == 1.0) ? "ok" : "error"); //这是三目运算符,在字符串输出的时候进行判断,语法简洁,
//此处不是全等判断,因此输出ok,且.号优先级角高,因此需要添加括号
//一个被.号优先级坑了的程序
echo "\n" . (1 === 1.0) ? "ok" : "error"; //此时输出OK,但实际情况中此处全等判断是不正确的,并且,该处本该出现的换行没有出现
echo "\n";
//PHP有一个规定为,非空,非0,就是真,当然这是在非全等判断的时候
if (" ") echo "空格返回真\n";
else echo "空格返回假\n";

if (!"") echo "空字符串返回假\n"; //此处使用逻辑非
else echo "空字符串返回真\n";

if (0.0 == false) echo "0.0为假\n";
if (!0) echo "0为假\n";
if (null == "") echo "null 常量返回假\n";
if (NULL == 0) echo "NULL 直接和 0 比较相等\n";
if (null === NULL) echo "null 和 NULL 是全等的\n";
if (null !== 0) echo "null 和 0 不是全等的\n";
if (null !== false) echo "null 和 false 不全等\n";
if ((null == 0) === true) echo "null 和 0 非全等比较的结果和 true 全等\n";
?>

先这样写着吧,等我换模板了再整理。

当前还没有任何评论

写下你最简单的想法