《php与MySQL Web开发》-读书笔记一

来源:互联网 发布:ubuntu好看的壁纸 编辑:程序博客网 时间:2024/04/25 15:25

1 require和include函数
相同点:用法几乎相同
唯一区别: require()函数会给出一个致命错误,而include()只给一个警告。
变种require_once和include_once:
防止错误的引入同样的函数库两次。出现重复定义的错误。而原版本的运行速度较快。

2 require用法
php不会查看require函数中文件的扩展名。使用require()语句载入文件page.html,文件内任何php命令都会被处理。但php代码放到php标记之间才会被处理成php代码。否则,代码将被视为文本或html脚本不会被执行。

// page.html<?php    echo "this is in php env";?>echo "this is out of php env and printed in text format";

注意:通常,php只解析扩展名被定义为.php的文件。而require函数则不同。

3 调用未定义的函数时,怎么办?
检查:
1 函数名称的拼写是否正确
2 函数是否存在于所用的php版本库中

4 函数名称的大小写
请注意:
函数调用不区分大小写,所以调用function_name()和Function_name()或FUNCTION_NAME()都是有效的,而且返回相同的结果。
但是, 变量名是区分大小写的。所以$Name和$name是两个不同的变量。

5 封闭php标记

<?php     function my_fun() {?>//这里必须有php封闭标记my function was called.<?php     }?>

6 PHP内置函数
所谓的PHP内置函数,就是在php程序的库里面规定以了的函数,比如echo,str_replace等。
在所有的php脚本中都可以使用php内置函数,但如果声明自己的函数,那它们就只能在自己的脚本中使用。
php不支持函数重载,所以不能和内置函数重名。
因此,避免再多个脚本中定义相同的函数名。

7 可变函数

<?phpfunction foo(){    echo "In foo()<br />\n";}$func = 'foo';$func();

$func()并不是一个函数合法名称,但是它也可以正确执行,这是根据$func的值来确定。php取出保存在$func中的值,寻找具有那个名称的函数,并且调用该函数。这种函数被称为可变函数。

8 echo对变量的影响

function fn() {    $var = "contents";}fn();echo $var; // 什么也没有输出// 如下所示的例子刚好相反。在函数外部声明一个变量,然后在函数内部使用它<?phpfunction fn() {    echo "inside the function, \$var = ".$var. "<br/>"; // 创建一个局部变量 $var    $var = "contents 2"; // 改变局部变量 $var 的值    echo "inside the function, \$var = ".$var. "<br/>";}$var = "contents 1";fn();echo "outside the function, \$var = ".$var. "<br/>"// outputinside the function, $var =inside the function, $var = contents 2outside the function, $var = contents 1 // 全局 $var 没有改变

9 global关键字
global可以用来手动指定一个在函数中定义或使用的变量具有全局作用域。

function fn() {    global $var;    $var = "contents";    echo "inside the function, \$var = ". $var ."<br/>";}fn(); echo "outside the function, \$var = ". $var ."<br/>";// outputinside the function, $var = contentsoutside the function, $var = contents

变量的作用域是从执行global $var这一句开始的。
当一个变量要在整个脚本中都要用到,在脚本的开始处使用关键字global

10 参数引用传递

function increment(&$value, $amount =1) {$value=$value+$amount;}$value = 1;echo $value; // print 1increment($value);echo $value; // print 2

11 类的属性

class A{    public $attribute;    public __construct()    {        $this->date = date('Y-m-d');    }// 内部通过 __set __get 访问实现属性设置和访问    public __set($name, $value) {        $this->$name  = $value;    }    public __get($name) {        return $this->$name;    }}$a = new A();// 在类中使用 $this 调用一个未定义的属性时,php5 会自动创建一个属性供使用,且这个被创建的属性默认方法权限是 publicecho $a->date;echo '<br />'; $a->$attribute = 5; // 该语句将间接调用__set()函数,将$name参数设置为“attribute”,而$value的值设置为5。

12 使用 final 关键字禁止继承和重载

class A{    public $attribute = "default value";    final function operation(){        echo '不能被子类重载';    }}// 也可以使用 final 关键在来禁止一个类被继承。final class A{    ...}

13 PHP 面向对象的高级功能
13.1 使用 Per-class 常量

class Math{    const pi = 3.1415926;}echo "Math::pi = ".Math::pi."\n"; // 不需要初始化类就可以访问

13.2 检查类的类型和类型提示
instanceof 关键字允许检查一个对象的类型。可以检查一个对象是否是特定类的实例,是否是从某个类过来或者是否实现了某个接口。

class A {}class B extends A {}interface Displayable {}{$b instanceof B} 返回 true{$b instanceof A} 返回 true{$b instanceof Displayable} 返回false

待续…

14 PHP 中的this self parent
this 是在类实例化的时指向其本身的引用。
self 是指向类本身,不指向任何已经实例化的对象。一般self使用来指向类中的静态变量或者常量。
parent 是指向父类的的应用,一般使用parent调用父类的构造函数或者方法。

0 0
原创粉丝点击