php 学习笔记

1、error_reporting(E_ALL);// 显示所有错误

2、当PHP解析器遇到一个美元符号 ($) , 它会和其它很多解析器一样,去尽量形成一个合法的变量名。可以用花括号来明确变量名的界线。

 <?php
 $beer = 'Heineken';
 echo "$beer's taste is great"; //有效;单引号"'"是非法的变量名组成元素
 echo "He drank some $beers"; //无效;字母s是有效的变量名组成元素,但是这里的变量是$beer
 echo "He drank some ${beer}s"; // 有效
 echo "He drank some {$beer}s"; // 有效
 ?>

3、$foo[bar] 的格式不能在字符串以外的地方使用一样。

4、复杂句法规则
 任何想用在字符串中标量变量,数组变量或对象属性都可使用这种方法。 只需简单地像在字符串以外的地方那样写出表达式, 然后用花括号{和 }把它括起来。 由于 { 无法被转义,只有 $ 要紧挨着 {才会被认出来,可以用 {\$ 来表达 {$。下面的示例可以更好的解释:

5、函数、行为、类的静态变量和类的常量只有在PHP 5以后才可在 {$} 中使用。然而,只有在用返回的值作为名称的变量存在的情况下才会进行处理,只单一使用花括号 ({}) 无法处理从函数或行为的返回值或从类的常量或静态变量的返回值。 用 [] 或 {} 存取其它类型的变量只会返回 NULL.

6、代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。

7、opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
 chdir()  改变当前的目录。
 chroot() 改变当前进程的根目录。
 dir()  打开一个目录句柄,并返回一个对象。
 closedir() 关闭目录句柄。
 getcwd() 返回当前目录。
 opendir() 打开目录句柄。
 readdir() 返回目录句柄中的条目。
 rewinddir() 重置目录句柄。
 scandir() 列出指定路径中的文件和目录。

8、// 销毁单个变量
 unset ($foo);

 // 销毁单个数组元素
 unset ($bar['quux']);

 // 销毁一个以上的变量
 unset ($foo1, $foo2, $foo3);
 unset() 销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。

 unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

 如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

 如果在函数中 unset() 一个静态变量,则 unset() 将销毁此变量及其所有的引用。
 如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:

 <?php
 function foo() {
     unset($GLOBALS['bar']);
 }

 $bar = "something";
 foo();
 ?>

9、PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。

10、变量默认总是传值赋值。
  使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前
  有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。

11、静态变量声明中用表达式的结果对其赋值会导致解析错误。  static $int = 1+2;
    引用并不是静态地存储的:

12、要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
 在 PHP 的函数和类的方法中,超全局变量不能用作可变变量。

13、//导入POST提交的变量值,前缀为post_
 import_request_variable("p", "post_");
 //导入GET和POST提交的变量值,前缀为gp_,GET优先于POST
 import_request_variable("gp", "gp_");
 //导入Cookie和GET的变量值,Cookie变量值优先于GET
 import_request_variable("cg", "cg_");

14、常量默认为大小写敏感。通常常量标识符总是大写的。 自定义常量不要以_开头
   合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
 在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量。一个常量一旦被定义,就不能再改变或者取消定义。

15、(1)static
 static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护。类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数。类的静态方法能访问类的静态的属性。另外说明的是,static的成员,必须使用self来访问,使用this会出错。
 (2)const
 const是一个定义常量的关键字,类似于C中的#define,能够定义一个常量,如果在程序中改变了它的值,那么会出现错误。
 (3)define不能定义在类中,而const必须定义在类中,并且const必须通过类名::变量名来进行访问;
 (4)两者都是不能进行重新赋值。
 
16、常量的设置  如果设置true,则不区分大小写。
 bool define(string $name , mixed $value [, bool $case_insensitive = false ] )

17、PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。 @ 运算符只对表达式有效。

18、switch 结构可以用字符串

19、require() 和 include() 几乎完全一样,除了处理失败的方式不同之外。include() 产生一个Warning而 require() 则导致一个 Fatal Error。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。

20、使用输出缓冲来将 PHP 文件包含入一个字符串
 <?php
  $string = get_include_contents('somefile.php');

  function get_include_contents($filename) {
   if (is_file($filename)) {
    ob_start();
    include $filename;
    $contents = ob_get_contents();
    ob_end_clean();
    return $contents;
   }
   return false;
  }

 ?>

21、要在脚本中自动包含文件,参见 php.ini 中的 auto_prepend_file 和 auto_append_file 配置选项。 goto 操作符仅在 PHP 5.3及以上版本有效.

22、在 PHP 中可以调用递归函数。但是要避免递归函数/方法调用超过 100-200 层,因为可能会破坏堆栈从而使当前脚本终止。

23、函数默认参数
 PHP 还允许使用数组和特殊类型 NULL 作为默认参数,例如:
 默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等表达式。
 请注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。考虑下面的代码片断

24、函数的返回值
 函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。
 从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :

25、 如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。

26、静态属性不可以由对象通过->操作符来访问。 PHP5.3.0之后,我们可以用一个变量来动态调用类。但该变量的值不能为关键字self, parent 或static。

27、str_replace(find,replace,string,count)参数 描述
    find 必需。规定要查找的值。
    replace 必需。规定替换 find 中的值的值。
    string 必需。规定被搜索的字符串。
    count 可选。一个变量,对替换数进行计数。

28、php的魔术方法
  1.__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用
  2.__destruct() 当删除一个对象或对象操作终止的时候,调用该方法。
  3.__get() 当试图读取一个并不存在的属性的时候被调用。
  4.__set() 当试图向一个并不存在的属性写入值的时候被调用。
  5.__call() 当试图调用一个对象并不存在的方法时,调用该方法。
  6.__toString() 当打印一个对象的时候被调用
  7.__clone() 当对象被克隆时,被调用
  8.当对未定义的变量调用isset() 或 empty()时,__isset() 会被调用。
  9.当对未定义的变量调用unset()时,__unset() 会被调用。
  10.当在静态方法中调用一个不可访问方法(如未定义,或者不可见)时,__callStatic() 会被调用。

29、定义和用法
  implode() 函数把数组元素组合为一个字符串。
  语法
  implode(separator,array)参数 描述
  separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
  array 必需。要结合为字符串的数组。

30、简单的对象迭代
   function iterateVisible() {
     echo "MyClass::iterateVisible:\n";
     foreach($this as $key => $value) {
      print "$key => $value\n";
     }
  }

31、var_export — 输出或返回一个变量的字符串表示

  Report a bug 描述
  mixed var_export ( mixed $expression [, bool $return ] )
  此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
  您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

32、父类中的方法被声明为final,则子类无法覆盖该方法; 如果一个类被声明为final,则不能被继承。

33、类型约束
  类型约束只支持对象 和 数组(php 5.1之后)两种类型。而不支持整型 和 字符串类型。
  类型约束不只是用在类的成员函数里,也能使用在函数里。
  类型约束允许NULL值:

34、后期绑定  从PHP 5.3.0开始,
  1、使用self:: 或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类
  2、后期绑定“的意思是说,static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的。

35、除了开始的declare语句外,命名空间的括号外不得有任何PHP代码。

36、$a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。
  1、如果具有引用的数组被拷贝,其值不会解除引用。对于数组传值给函数也是如此。
  2、如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。 3、如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。
  4、取消引用:
   当 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了

37、超全局变量是: 它们在一个脚本的全部作用域中都可用
  $GLOBALS
  $_SERVER
  $_GET
  $_POST
  $_FILES
  $_COOKIE
  $_SESSION
  $_REQUEST
  $_ENV


38、$http_response_header — HTTP 响应头
  $HTTP_RAW_POST_DATA — 原生POST数据
  php_errormsg 变量包含由 PHP 生成的最新错误信息。这个变量只在错误发生的作用域内可用,并且要求 track_errors 配置项是开启的(默认是关闭的)。

39、异常
  Exception::getFile — 获取发生异常的程序文件名称
  Exception::getCode — 获取异常代码
  Exception::getPrevious — 返回异常链中的前一个异常
  Exception::getMessage — 获取异常消息内容
  Exception::__construct — 异常构造函
  final public int Exception::getLine ( void )
  Exception::getTrace — 获取异常追踪信息返回发生异常的代码在文件中的行号
  Exception::getTraceAsString — 获取字符串类型的异常追踪信息

40、单引号和双引号的区别
  双引号 里的东西 输入的时候能判断是否 包含 变量,如果包含 变量 就一起输出
  单引号里的就不一样,不判断是否有变量,就全部当成 字符串 输出

41、mysql_fetch_array()  从结果集中取得一行作为关联数组,或数字数组,或二者兼有
  返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
  其中可选的第二个参数 result_type
  是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7
  起新加的。本参数的默认值是 MYSQL_BOTH。

42、上传文件  $_FILES属性
  $_FILES['userfile']['name']

  客户端机器文件的原名称。

  $_FILES['userfile']['type']
  文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。

  $_FILES['userfile']['size']
  已上传文件的大小,单位为字节。

  $_FILES['userfile']['tmp_name']
  文件被上传后在服务端储存的临时文件名。

  $_FILES['userfile']['error']
  和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

 

你可能感兴趣的:(PHP,mysql,正则表达式,浏览器,脚本)