美文网首页
PHP基础知识

PHP基础知识

作者: 编程放大镜 | 来源:发表于2022-05-11 19:54 被阅读0次

    PHP的垃圾回收机制(GC机制)

    官方说明 http://docs.php.net/manual/zh/features.gc.refcounting-basics.php
    PHP可以自动进行内存管理,清除不再需要的对象。PHP使用了引用计数这种单纯的垃圾回收机制。每个对象都内含一个引用计数器,每多一个reference链接到对象,计数器加1,当reference离开生存空间或者被设为null,计数器减1,当某个引用计数器的对象为0时,PHP知道你将不再需要使用这个对象,释放其所占有的内存空间。

    1.PHP 语法错误 和 语义错误 的区别:
    语法错误 通过IDE都可以提示看到:如缺少分号,未声明的变量,不匹配的括号或大括号,和未终止字符串;
    语义错误 一般是逻辑上的错误,例如:除以0。
    2.函数名不区分大小写,变量区分大小写。
    3.检测变量类型:is_bool(),is_string(),is_float(),is_array(),is_object()。
    4.检测是否存在:file_exists(),class_exists(),property_exists()
    5.将stdclass object转换为数组:get_object_vars(test); 7.require/include遇到即包含文件,require_once/include_once只包含一次。 require/require_once遇到错误会终止,一般放在程序的最前面; include/include_once遇到错误会继续执行,一般放在流程控制语句中。 8.session_start()函数前面如果需要有输出:ob_start();session_start();_SESSION[user]=1;ob_end_flush();
    9.使用empty(),对于""、0、"0"、NULL、FALSE、array() 都认为是空的。
    10.parse_url : 解析URL,返回其组成部分
    11.http_build_query() : 生成 url_encode 之后的请求字符串
    12.usleep 微秒,sleep 秒:sleep(2) = 2秒。
    13.获取图片尺寸:getimagesize("1.jpg");
    14.页面js调试:console.info(“输出info”); console.warn(“输出警告”); console.error(“输出错误”);
    15.PHP中的错误级别:Deprecated/Notice/Warning/Fatal error/Parse error(最高级别的错误,语法解析错误);
    16.屏蔽错误输出:error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_WARNING);
    17.代码调试:debug_backtrace(); 实参个数:func_num_args(); 返回某一个实参:func_get_args();
    18.将数组结果以字符串的形式输出(可以直接将数组的结果以字符串的形式写入日志):
    echo print_r(arr,1); 或者 echo var_export(arr,1);

    1.七种布尔false:0,0.0,'','0',false,array(),NULL。注意,字符串的'false'的布尔值是 true
    2.遍历数组的三种方式和区别:
    (1)for循环:只能遍历数字索引。
    (2)foreach循环:可以遍历数字索引和关联索引,并且会对数组进行reset()操作
    (3)while、list()、each()组合循环:可以遍历数字索引和关联索引,但是不会对数组进行reset()操作
    3.continue 2 表示跳出外面第2层循环,其他数字同理。
    4.全局变量:把外部的全局变量用于函数内部,在内部的变量使用global a,或者GLOBALS['a']
    5.静态变量:仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不会消失(不会释放内存),使用 static $a
    说明:仅初始化一次;初始化时需要赋值;每次执行函数该值会保留; static修饰的变量是局部的,仅在函数内部有效;
    可以记录函数的调用次数,从而可以在某些条件下终止递归。

    isset和empty
    isset用来判断变量是否存在;empty用来判断变量是否有值。
    a不存在和a = null 两种情况在isset看来为true,其余为false(包括a = ‘’;)a = null, 0, false, ‘ ’, 或不存在时在empty看来为true,其余为false。

    获取对象属性 get_object_vars
    注意: get_class_vars 获取的属性的值是初始化的默认值,不是运行过程中,更改的值。

    get the classname without the namespace

    function get_class_name($classname)
    {
        if ($pos = strrpos($classname, '\\')) return substr($classname, $pos + 1);
        return $pos;
    }
    

    (1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。
    instanceof

    相关文章

      网友评论

          本文标题:PHP基础知识

          本文链接:https://www.haomeiwen.com/subject/wtiwdxtx.html