From 3ba290cb2f2dc7f62d320eda9808ace21011139d Mon Sep 17 00:00:00 2001
From: wiwkok-pc <867034892@qq.com>
Date: Tue, 15 Mar 2022 18:57:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8C=BF=E5=90=8D=E5=87=BD=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
01基本语法/01数据类型/02-bool.php | 7 +++
01基本语法/02静态变量static.php | 21 ++++++++
01基本语法/03全局变量global.php | 26 +++++++++
01基本语法/global.php | 24 ---------
01基本语法/static_variables.php | 16 ------
03函数/04匿名函数.php | 48 ++++++++---------
07面向对象/12-类常量.php | 65 ++++++++++++++++++-----
7 files changed, 131 insertions(+), 76 deletions(-)
create mode 100644 01基本语法/01数据类型/02-bool.php
create mode 100644 01基本语法/02静态变量static.php
create mode 100644 01基本语法/03全局变量global.php
delete mode 100644 01基本语法/global.php
delete mode 100644 01基本语法/static_variables.php
diff --git a/01基本语法/01数据类型/02-bool.php b/01基本语法/01数据类型/02-bool.php
new file mode 100644
index 0000000..bcca477
--- /dev/null
+++ b/01基本语法/01数据类型/02-bool.php
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/01基本语法/02静态变量static.php b/01基本语法/02静态变量static.php
new file mode 100644
index 0000000..47815f0
--- /dev/null
+++ b/01基本语法/02静态变量static.php
@@ -0,0 +1,21 @@
+
+
diff --git a/01基本语法/03全局变量global.php b/01基本语法/03全局变量global.php
new file mode 100644
index 0000000..68fa18a
--- /dev/null
+++ b/01基本语法/03全局变量global.php
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/01基本语法/global.php b/01基本语法/global.php
deleted file mode 100644
index 91665e3..0000000
--- a/01基本语法/global.php
+++ /dev/null
@@ -1,24 +0,0 @@
- b:$b";
- echo "
c:$c";
- }
-
- function func2()
- {
- echo "
a:".$GLOBALS['a']; // $GLOBALS['var'] 指的是函数外部变量本身,是一个变量.在程序的任意位置都能使用
- echo "
b:".$GLOBALS['b'];
- echo "
c:".$GLOBALS['c'];
- }
-
- func();
- echo "
";
- func2();
-?>
\ No newline at end of file
diff --git a/01基本语法/static_variables.php b/01基本语法/static_variables.php
deleted file mode 100644
index 8d86bdf..0000000
--- a/01基本语法/static_variables.php
+++ /dev/null
@@ -1,16 +0,0 @@
-"; //每当func()结束后,静态变量a的生命周期没有结束掉,不断的在原来的数值上+1,而b的生命周期结束了,每次调用func都是0
- }
-
- func();
- func();
- func();
-
- echo $a; //但是静态变量作用域和局部变量是一样的,在作用域之外是不能使用的
-?>
-
diff --git a/03函数/04匿名函数.php b/03函数/04匿名函数.php
index 1cd9f9c..1c0095e 100644
--- a/03函数/04匿名函数.php
+++ b/03函数/04匿名函数.php
@@ -1,47 +1,47 @@
';
- // return 'hello';
+ echo 'hello'.PHP_EOL;
+ return "这是匿名函数的返回值";
};
$a();
+ echo $a().PHP_EOL; //output:会执行函数里的代码,并且返回返回值
+
+ //2 匿名函数的参数
+ $b=function($var){
+ echo $var.PHP_EOL;
+ return "返回".$var;
+ };
- //查看变量内容
- var_dump(($a));
+ $b("匿名函数的参数");
+ echo $b("匿名函数的参数").PHP_EOL;
- //闭包=匿名函数
- //函数里面的函数
+ //2 匿名函数作为函数里的函数
function func(){
- //定义局部变量
$b='world';
$innerFunc = function(){
- //函数内部的函数
-
//调用函数func的局部变量
- echo $b.'
';
+ echo $b; //wrong output:Undefined variable: b
};
//调用匿名函数
$innerFunc();
-
}
-
- func();
-
- // echo $a().'
';
-
// //匿名函数作为参数,回调函数
- // $arr=[1,2,3,4];
- // $ret=array_map(function ($num){
- // return $num*$num;
- // }, $arr);
-
- // echo '
'; - // print_r($ret); + function mathOpt(function(){return 0;}){ + + } ?> \ No newline at end of file diff --git a/07面向对象/12-类常量.php b/07面向对象/12-类常量.php index f73ddfa..d690157 100644 --- a/07面向对象/12-类常量.php +++ b/07面向对象/12-类常量.php @@ -1,31 +1,72 @@ '访问 + * 子类可以重写父类的类常量,通过区域解析符(parent::)调用父类中的类常量 */ -use classA as GlobalClassA; - - class classA + class ClassA { //定义类常量 - const a='hello'; + const a='这是一个类常量'; function func() { - //在类的方法中调用类常量 - echo self::a.'
'; + //在类的方法中调用本类常量 + echo self::a.PHP_EOL; } } //直接调用类常量 - echo classA::a.'
'; + echo ClassA::a.PHP_EOL; - //对象::类常量 + //对象::类常量,PHP5.3起可以使用变量调用类常量 $obj = new ClassA(); - echo $obj::a.'
'; - echo $obj->a.'
'; //对象不能访问类常量,会报“Undefined property: classA::$a” + echo $obj::a.PHP_EOL; + //echo $obj->a.'
'; //对象不能访问类常量,会报“Undefined property: ClassA::$a” //对象中方法调用类常量 - echo $obj->func(); + $obj->func(); + + + //访问父类类常量 + class ClassB extends ClassA + { + function func(){ + echo parent::a.PHP_EOL; + } + } + + echo "调用父类的类常量".PHP_EOL; + $obj=new ClassB(); + $obj->func(); + + + //重写父类的类常量 + class ClassC extends ClassA + { + const a = "这个一个被子类重写的类常量"; + + function func(){ + echo parent::a.PHP_EOL; + } + + } + + echo ClassC::a.PHP_EOL; //被子类重写的类常量 + $obj=new ClassB(); //这是一个类常量 + $obj->func(); + + /** + * 感悟:类常量估计是在编译时已经实例化在内存的东西,所以不能再实例化 + */ ?> \ No newline at end of file