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