php 语法笔记

1. php 中的高级分离术
<?php if(1+2 > 3) { ?>
      1+2  > 3
<?php } else { ?>
      1+2 <= 3
<?php } ?>

2. php 支持9种基本的数据类型
    1)四种标量  boolean, integer, float(doule), string
    2) 两种符合类型 array 和 object
    3) 三种特殊类型 resource, null, callable
    为类型
    1) mixed 2)number, 3)callback
    callback 可以接受函数或者方法。
    php 的变量不是有程序员来决定的,有运行的上下文来决定的。
    float 和 double 其实是一样的。历史原因
    
3. 查看变量的一些函数
    1. var_dump() 2. gettype(), 3.is_type(), 4. print_r
4. 当变量转换为bool值的时候,一些变量被认为是false
    1) 0, 0.0, "0", "", array(), 没有成员的对象,null,没有任何标记的xml文档生成的 simpleXML
5. 任意长度的整数 GMP  http://www.php.net/manual/zh/ref.gmp.php
   任意精度的数学库 http://www.php.net/manual/zh/ref.bc.php
   PHP_INT_MAX 最大的值
6. 整数的描述
   decimal :[1-9][0-9]*  or 0
   hex :0[xX][0-9a-fA-F]+
   oct :0[0-7]+
   integer :[-+]?decimal or [+-]?hex or [+-]?oct
7. 如果整形溢出了,变为 float
8. heredoc 结果: <<<
9. call_user_func 可以调用用户的函数
    比如    call_user_func("my_callback_funtcion");
            call_user_func(array("myClass", "myCallbackMethod"));
            call_user_func("myClass::myCallbackMethod");
   function f($a , $b) {
        echo $a+$b;
    }
    call_user_func("f", 1, 2);
    // Warning: call_user_func() expects parameter 1 to be a valid callback, function 'echo' not found or invalid function name
    // !!!  call_user_func("echo", "hello world");
    call_user_func 可以调用用户定义的,或者内置的函数,但是语言结构不可以。
    语言结构 比如: array(), echo, empty(), eval(), exit(), isset(), list(), print, unset()
10. php 的变量的名字 [a-zA-z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
11. & 变量的引用
12. php 中的预定义变量
    $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_REQUEST, $_SESSION,
    $ENV, $_COOKIE, $php_errormsg, $HTTP_RAW_POST_DATA
    $http_response_header, $argc, $argv
13. php 中的魔术常量
    __LINE__ , __FILE__ , __DIR__ (5.3) __FUNCTION__  __CLASS__  __METHOD__  __NAMESPACE__
14. __construct 构造函数,
15. 抽象类的用 abstract .抽象的方法必须用子类来覆盖。 有一个方法是抽象的,该类就是抽象的。
16. php 中的重载overloading 是动态的创建类的属性和方法。 我们通过 魔术方法来实现。
    当调用当前环境中未定义的或者不可以见的类属相或者方法的时候,重载方法会被调用。
    所有的重载方法都必须是 public.
    public void __set()(string $name, mixed $value) : 在给未定义的变量赋值的时会被调用
    public mixed __get()(string $name) : 读取未定义的变量的时候会被调用。
    public bool __isset()(string $name) : 对为定义的变量调用 isset() , empty() 的时候被调用
    public void __unset() (string $name) : 对为定义的变量调用 unset() 的时候会被调用。
    public mixed __call(string $name, array $arguments)
    public mixed __callStatic(string $name, array $arguments)
17. 使用设计模式是促进最佳实践和良好设计的好办法。 设计模式可以提供针对常见的编程问题的灵活的解决方案。
18. php 中的魔术方法
    __construct(), __destruct(), __call, __callStatic(), __get(), __set()
    __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke()
    __set_state(), __clone()
    
    __sleep(), __wakeup() 的使用一般和 serialize, 和 unserialize 一起使用
    __invoke() 当试图用调用函数的方法调用时候,引发这个函数。
19. final 父类中的 方法为 final的时候,子类无法覆盖。
20. $copy_of_object = clone $object 强制复制一个对象
21. php.ini 中的相关设置  file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size, max_input_time
22. $_FILES[""]["name"], $_FILES[""]["type"], $_FILES[""]["size"],
    $_FILES[""]["tmp_name"], $_FILES[""]["error"]
23. 文件上传的错误信息
    UPLOAD_ERR_OK  0
    UPLOAD_ERR_INT_SIZE 1  文件太大 比 upload_max_filesize 大
    UPLOAD_ERR_FOMR_SIZE 2 文件太大 比 MAX_FILE_SIZE 大
    UPLOAD_ERR_PARTIAL 3
    UPLAOD_ERR_NO_FILE 4
    UPLOAD_ERR_NO_TMP_DIR 6
    UPLOAD_ERR_CANT_WRITE 7
24. 激活远程文件

posted @ 2013-03-16 11:30  刘牛德  阅读(147)  评论(0)    收藏  举报