批改状态:合格
老师批语:
字符串
区别:
<?php//echoecho "using echo";echo "<hr>";$a = print "using print";//return value of printecho " return ".$a;echo "<hr>";$b = "using echo ";echo $b,$b;echo "<hr>";

*注:ob_clean() 使之前代码不输出
数组
区别:
ob_clean();$arr = [1,true,"hehe",3.14];//数组也可这样声明// $arr2 = Array("id"=>1,"name"=>"haha","working"=>false);echo "using echo \$arr";echo "<hr>";echo $arr;echo "<hr>";echo "using var_dump(\$arr)";echo "<hr>";var_dump($arr);echo "<hr>";echo "using print_r(\$arr)";echo "<hr>";print_r($arr);echo "<hr>";echo "using var_export(\$arr)";echo "<hr>";var_export($arr);echo "<hr>";echo "using print_r(\$arr,true)";print_r($arr,true);echo "<hr>";echo "using var_export(\$arr,true)";var_export($arr,true);

$v1=print_r($arr,true);$v2=var_export($arr,true);file_put_contents("log1.txt",$v1);file_put_contents("log2.txt",$v2);


*注:<pre></pre>标签可使内容保持文本格式输出和
var_dump() or gettype() 可以用于查看数据类型
*注:@符号在PHP中用作错误控制操作符。当表达式附加@符号时,将忽略该表达式可能生成的错误消息。
resource类型
<?php//resource 资源类型 保存到外部资源的一个引用//fopen$reader = fopen("log1.txt","w");var_dump($reader);//resource(3) of type (stream)// 3是id stream是资源类型
//imagecreate()$image_creater = imagecreate(100,50);var_dump($image_creater);//resource(4) of type (gd)// id gd是PHP的一个库,默认打开(phpinfo()可见)
null类型
//null 表示变量没有值$reader = null;var_dump($reader);//NULLunset($image_creater);var_dump($image_creater);//NULL
强制类型转换
<?php# 强制类型转换$page = '3';echo gettype($page);echo "<hr>";$newPage = (int)$page;echo gettype($newPage);echo "<hr>";var_dump($newPage,(string)$newPage,(float)$newPage);echo "<hr>";var_dump((array)$newPage,((array)$newPage)[0]);

自动类型转换—数值
(使用+ - 运算符,计算的数据需为数值类型,如果不是数值类型,会触发自动转换)
# 自动类型转换$a = "200pigs";@$a += 100;var_dump($a);// int(300)$a += 5.5;var_dump($a);// float(305.5)$a += null + "10";var_dump($a);// float(315.5)
自动类型转换—字符串
(使用 . 拼接字符串,会触发自动转换为字符串)
echo "I am ". 18 ." years old ".true;// I am 18 years old 1
自动类型转换—布尔
# if判断中,null等同于falseif (!null) {echo "ok";}// ok
@settype($page,boolean);echo "<hr>";echo $page;// 1echo gettype($page);// boolean
function add(int $a, int $b) : string {return $a + $b;}var_dump(add(11.11,22.22));// string(2) "33"
$a = 100;$b = $a;$c = &$a;echo "\$a=$a, ","\$b=$b, ","\$c=$c";echo "<hr> change a to 55: \$a=55<hr>";$a = 55;echo "\$a=$a, ","\$b=$b, ","\$c=$c";echo "<hr>unset(\$a)<hr>";echo "\$a=$a, ","\$b=$b, ","\$c=$c";echo "<hr> change a to 99: \$a=99<hr>";echo "\$a=$a, ","\$b=$b, ","\$c=$c";

$uname = "Tom";var_dump(isset($uname));//bool(true)$uname = null;var_dump(isset($uname));//bool(false)
$upwd = "";var_dump(empty($upwd));// bool(true)$upwd = null;var_dump(empty($upwd));// bool(true)$upwd = 0;var_dump(empty($upwd));// bool(true)$upwd = 1;var_dump(empty($upwd));// bool(false)$upwd = false;var_dump(empty($upwd));// bool(true)$upwd = true;var_dump(empty($upwd));// bool(false)
$a = 10;$b = 20;function a(){echo $a+$b;}a();//0#在函数中使用全局变量#1. globalfunction b(){global $a, $b;echo $a+$b;}b();//30#2. $GLOBALS[name]function c(){echo $GLOBALS["a"]+$GLOBALS["b"];}c();//30
// $GLOBALS: 引用全局作用域中可用的全部变量// $_SERVER: 服务器和执行环境信息// $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组// $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本// $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组// $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组// $_SESSION:当前脚本可用 SESSION 变量的数组// $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组// $_ENV: 通过环境方式传递给当前脚本的变量的数组
例 $_GET
获取地址栏后面的参数
http://phps.com/0426/demo5.php?id=1&age=22
echo "<pre>".print_r($_GET,true)."<pre>";

<?php# 常量 const, define(name,value)定义const PATH = "/0426/demo4.php";const FEMALE = "女";define("MALE","男");printf("性别 <br> Male %s <br> Female %s",MALE,FEMALE);//printf() 格式化输出# 在类中定义常量只能使用 constclass Test{const PATH = "/0426/demo4.php";}

get_defined_constants(true/false)
echo "<pre>".print_r(get_defined_constants(true),true)."<pre>";

(source:https://www.php.net/manual/en/language.constants.magic.php)
<?phpecho "line: ".__LINE__;// line: 2
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号