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. 激活远程文件
浙公网安备 33010602011771号