@ -0,0 +1,28 @@
<?php
define('a','1');
const b=2;
echo a.'<br>'; //常量没有$号
echo b.'<br>';
//b=3; //b是常量,不能再修改
//echo b;
//获取常量
$b='b';
echo constant($b).'<br>';
//判断常量是否存在
const c=3;
$d=4;
var_dump(defined('c')); //常量c存在,返回true
echo '<br>';
var_dump(defined('d')); //d不是常量,返回false
//魔术常量
echo "当前文件路径".__FILE__;
/*
感悟:php常量像C语言里的宏
*/
?>
@ -0,0 +1,24 @@
$a=1;
$b=2;
$c=3;
function func()
{
global $a,$b;
echo "a:$a"; //func内使用global引用了a和b,所以c没有打印出来
echo "<br> b:$b";
echo "<br> c:$c";
}
function func2()
echo "<br>a:".$GLOBALS['a']; // $GLOBALS['var'] 指的是函数外部变量本身,是一个变量.在程序的任意位置都能使用
echo "<br>b:".$GLOBALS['b'];
echo "<br>c:".$GLOBALS['c'];
func();
echo "<br>";
func2();
@ -0,0 +1,16 @@
function func(){
static $a;
$b=0;
$a++;
$b++;
echo "$a $b <br>"; //每当func()结束后,静态变量a的生命周期没有结束掉,不断的在原来的数值上+1,而b的生命周期结束了,每次调用func都是0
echo $a; //但是静态变量作用域和局部变量是一样的,在作用域之外是不能使用的
@ -0,0 +1,10 @@
//可变变量,有点像c语言里得宏
$a='hallo';
echo $a.'<br>';
$$a='world'; //=>${$a}='world' =>($a='hallo')=> $hallo='world'
echo $$a.'<br>';
echo ${$a}.'<br>';
@ -0,0 +1,17 @@
$title='php';
$str=<<<str
<!DOCTYPE html>
<html>
<head>
<title> $title </title>
</head>
<body>
hello world!
</body>
</html>
str;
echo $str;
@ -0,0 +1,15 @@
//等于==和全等于===
$a=10;
$b='10';
if($a==$b){
echo 'a的值等于b的值'.'<br>';
$c=10;
$d=10;
if($c===$d)
echo 'c的类型和值等于d的类型和值'.'<br>';
@ -0,0 +1,8 @@
//php已经设定好的变量
var_dump($GLOBALS);
echo "<pre>";
var_dump($_SERVER);
@ -0,0 +1,26 @@
//当i=5时跳到第三层循环
while(1){
while(1)
while (1)
for($i=0; $i<10 ;$i++)
echo $i.'<br>';
if($i==5)
break 2;//跳出第2层循环,进入第三层循环;
echo "第1层循环<br>";
echo "第2层循环<br>";
echo "第3层循环<br>";
break;
echo "第4层循环<br>";
@ -0,0 +1,3 @@
echo 'hello<br>';
$array=['name'=>'kwj','age'=>'30','native'=>'dongguan'];
//遍历数组值
foreach($array as $value){
echo $value;
echo '------<br>';
//遍历键名和键值
foreach($array as $key=>$value){
echo "$key : $value";
@ -0,0 +1,4 @@
include './inlude2.php';
echo $a;
@ -0,0 +1,5 @@
include_once './demo.php';
//只会显示一行hello,因为demo.php只能被包含一次
require './inlude2.php';
@ -0,0 +1,11 @@
class C{}
class D extends C{} //类D继承自类C
class E{}
functionf(C $c){
echo get_class($c)."\n";
f(new C);
f(new D);
f(new E);
function func(...$arr){
print_r($arr);
echo '<pre>';
func(1,2,3);
func(4,5,6,7,8);
@ -0,0 +1,9 @@
declare(strict_types=1);
function func(int $a, int $b)
echo ($a + $b);
func(3.8 ,2); //3.8是float类型,a是int,在strict_types=1不能类型转换