PHP面试基础知识笔记

三年PHP面试总结 在第一家公司工作有三年了,以前只专注写PHP,现在换工作后才了解自己知识的匮乏,现在总结下面试中会问到的问题。也是工作三年的PHP应该必须知道的内容 以下并不提供答案,只是碰到问的面试问题,因为好多我都没答上来。 1. PHP方面的问题 什么是composer?以及composer是干什么用的?工作原理 PHP如何实现静态化 你了解设计模式吗?说下你最常用的设计模式 观察者模式是如何实现的?工 阅读详情

PHP面试基础知识笔记


一、isset()函数和empty()函数

1. isset() 函数

isset()函数用于检测变量是否被设置并且非Null。

    //isset() 函数用于检测变量是否已设置并且非 NULL。
    public function check_isset(){
        $a = null;
        var_dump(isset($a));  // 输出 false
        $b = 'test';
        unset($b);  //销毁变量$b
        var_dump(isset($b));    //输出 false
        $c = '';
        var_dump(isset($c));  //输出 true
        //isset可以应用到判断数组元素是否存在
        $arr =['name'=>'jackie','age'=>20];
        var_dump(isset($arr['phone']));  // 输出 false
        var_dump(isset($arr['age']));  // 输出 true
    }

2. Empty()函数

Empty() 函数用于检测变量是否为空。

    //empty()函数检查一个变量是否为空
    public  function check_empty(){
         $a ='';
         var_dump(empty($a));   //输出 true

         $b = null;
         var_dump(empty($b));   //输出 true

         $c =[];
         var_dump(empty($c));    //输出 true

         var_dump(empty($d));  //输出 true  变量没有赋值,输出true

         $e = false;
         var_dump(empty($e));  //输出true, $e=0 也是输出true false=0  如果$e = true 就输出false
         $f = '0';
         var_dump(empty($f));  //输出 true
    }

二、按值传递和引用传递

1.按值传递

正常的赋值,相当于复制,变量已最后一次赋值为准。

	$a = "test";
	$b = $a;
	$a = "newtest";
	echo $a;  //输出newtest
	echo $b;   //输出test
	--或者
	$a = "test";
	$b = $a;
	$b = "newtest";
	echo $a;  //输出test
	echo $b;   //输出newtest

2.按引用传递

被赋值的变量指向原始变量,一变则变,(跟着变、共同体),在原始变量加&。

	$a = 'test';
	$b = &$a;  //引用赋值,$a、$b指向同一空间,两者相对与一个共同体
	$b = 'newtest';    //$b 变则 $a跟着变
	echo $a;  //输出 newtest
	echo $b;  //输出  newtest

3.按引用传递(函数)

函数内变量改变,函数外跟着变。

	$a = 'test';
	function fun(&$var){  //$var 引用$a; 两者共同体
	  $var = "newtest";  //$var改变则$a跟着改变
	}
	fun($a);
	echo $a;   //输出newtest

4.两者优缺点

按值传递:php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递:不需要复制值,对于性能提高很有好处。

三、全等和等于区别

==只是判断内容是否一致,===先判断两者数据类型是否一致,如果不一致直接返回false,如果一致再判断两者内容是否一致。

四、static、$this和self

1.Static关键字

声明类属性或方法加上static就变成静态属性或静态方法,静态方法就可以不实例化就可以直接访问。

static变量使用

静态变量执行完不会销毁,而是会继续使用上次执行的结果。

    for($i=0;$i<3;$i++){
        static $a = 0;
        echo  $a;
        $a++;
    }
    //输出 012    如果不加上static,输出000

静态方法

调用1:classname::staticMethod();
调用2:self::staticMethod();

静态属性

调用1:classname::staticAttr();
调用2:self::staticAttr();

2.Self关键字

self是指向类本身,与任何对象实例无关。self可以访问本类中的静态属性和静态方法,也可以访问父类中的静态属性和静态方法。无论是调用本类还是父类self都可以不用实例化,直接调用。

self::staticAttr
self::statciMethod

如果要调用本类中的静态成员,必须使用self来调用,使用this来调用会报错(如:未定义变量test)

3.This关键字

$this当前对象

五、单引号’ ’ 与双引号" "区别

尽量使用单引号

    public function note(){
        $var = "jackie";
        echo "我叫$var";    //输出  我叫jackie
        echo '我叫$var';    //输出  我叫$var

        echo '我叫{$var}';  //输出  我叫$var
        echo "我叫{$var}";  //输出  我叫jackie

        $str1 = 'I\'am jackie';  //输出  I'am jackie
        echo $str1,'<br />';

        //单引号不需要考虑变量的解析,速度比双引号快
    }

六、echo、print、print_r 区别

  1. echo() 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构,而并不是真正的函数,因不能作为表达式的一部分使用。
  2. print() 只能打印一个值,如果字符串成功显示则返回true,否则返回false。
  3. print_r() 可以打印数组、对象

七、构造函数__construct()和析构函数__destruct()

1. 构造函数__construct()

  1. 在对应对象实例化时会自动被调用,具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
  2. 如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承(假如没有被定义为 private 的话)。

2. 析构函数__destruct()

  1. 析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
  2. 和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。
<?php
class Base{
    public $test = 'jackie';
    function __construct($test){
           $this->test = $test;
           echo '我是父类的构造函数----';
           echo $test;
    }
}
class Api extends Base
{
    protected $name ='';
    private  $age = 25;
    public $phone;
    public function __construct($phone){
        parent::__construct('111');  //调用父类的构造函数
        $this->phone = $phone;
        echo '我是子类的构造函数----';
    }
    public function __destruct(){
        echo '我是析构函数,对象'.__CLASS__ .'调用完就执行---';
    }
    public function test(){
        echo 'test---';
    }
}
$c = new Api('110');
$c->test();

八、GET、POST 区别

  1. GET是从服务器上获取数据,POST是向服务器传送数据。
  2. GET安全性非常低(参数暴露在地址栏),但执行效率快,POST安全性较高。
  3. get传送的数据量较小,不能大于2KB,post传送的数据量较大,一般被默认为不受限制。
  4. GET是通过URL方式请求,POST是通过请求header请求。

待续。。。!

PHP程序员面试题 PHP面试题,高级程序员面试使用。里面涉及到一些基础与概念。目录分为一:缓存技术(必做)二:有关Ajax的缓存问题(必做)三.Linux计划任务的SH编写(必做)四:软件开发流程五:MVC设计模式六:有关CSS的知识问题七:OOP 开发与编码风格(必做)八:实战表单验证(必做 ) 立即下载

相关推荐

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

PHP基础知识(面试题+复习)

(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范围符合32 位有符号整数的最小值和最大值)。不过在 PHP 5.1 之前此范围在某些系统(如 Windows)中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。

qq_41192487的博客 1037

避坑指南:RK3588视频编码与SRT推流实战中,我遇到的5个典型问题及解决方案

本文深度解析RK3588平台视频编码与SRT推流实战中的五个典型问题,包括MIPI摄像头内存对齐、多线程数据传递、FFmpeg时间戳设置、SRT连接参数调优及系统资源监控。提供具体解决方案和优化技巧,帮助开发者高效实现实时视频网络传输。

weixin_28718793的博客 323

php基础知识点(面试常考)

超全局变量 $_SERVER['SERVER_ADDR'] 服务器IP地址 $_SERVER['QUERY_STRING'] ?后面的一大串 $_SERVER['REMOTE_ADDR']客户端IP地址  $_SERVER['HTTP_REFFRER']上级请求的页面,如果通过网址通过访问,为空 $_SERVER['PATH_INFO']中间的use/reg      错误运算符@: ...

qq_36346877的博客 6324

记录rk3588 在Linux 6.1内核版本声卡 bug。

rk3588 Audio bug

Yongheng6的博客 855

[运动规划算法]基于飞行走廊的轨迹优化

文章目录简介一、介绍二、原理飞行走廊生成三、项目演示参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航。基于机载状态估计和环境感知,采用基于快速行进(FM *)的路径搜索方法,从基于构建的欧氏距离场(ESDF)中寻找路径,以实现更好的时间分配。通过对环境进行膨胀生成四旋翼无人机的飞行飞行走廊。使用伯恩斯坦多项式将轨迹表示为分段Bezier曲线,并将整个轨迹生成问题转换成凸问题。通过使用Bezier曲线,可以确保轨迹的安全性和高阶动力学可行性,可以将轨迹完全限制在安全

xiewf的博客 8063

php面试 基础知识整理

含义:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 十大经典排序算法 ...

pure_one的博客 416

华为od 面试八股文_前端_03_含答案

华为od 面试八股文_前端_03_含答案

MISAYAONE的博客 2130

PHP面试基础知识

1. COW机制Copy On Write 写时复制。变量在写入时才真正复制一份内存进行修改。具体参考:写时复制COW机制2. PHP字符串的4种表达方式单引号(效率最高)双引号heredoc(类似双引号)nowdoc(类似单引号)具体参考:PHP字符串的4种表达方式3. 不要用等号去比较浮点数因为计算机在计算浮点数时,会将浮点数转换为二进制数,难免会造成精度丢失。4.  FALSE的七种情况0,...

lxxxxxl的博客 4432

从零开始学 AUTOSAR:深入浅出 SAE J1939 诊断通信管理器(J1939Dcm)深度完整版

SAE J1939 是美国汽车工程师学会制定的重型车辆 CAN 总线通信标准,覆盖卡车、客车、工程机械、农机、船舶等,是商用车领域的 “通用语言”。基于CAN 2.0B 扩展帧(29 位 ID)(车规主流)PGN(参数组号)+ SPN(可疑参数号)核心标准:J1939-21:数据链路层(CAN 帧格式、地址声明)J1939-71:应用层(普通信号、报文)诊断层(核心!J1939Dcm 依据)J1939-81:网络管理(地址管理、节点检测)

getusushu的博客 116

ICM20948 DMP代码详解(54)

ICM20948 DMP代码详解(54)

phmatthaus的专栏 424

php面试笔记(3)-php基础知识-运算符

在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中运算符相关的注意点。

学长冷月的博客 1274

Unreal5从入门到精通之如何在VR中使用3DUI

前面我们讲过《Unreal5从入门到精通之UMG的使用》一般制作游戏时,UI都是添加到屏幕视窗上面的,但是在制作VR时,我们往往需要制作一个3D的UI,放置在场景中,然后使用手柄的射线来和UI进行交互。今天我们就来讲解下,如何在VR中创作和交互3DUI首次操作会感觉好复杂,多多练习,当你熟悉了UE蓝图的操作后会发现,这只是一个常规的蓝图操作而已。祝大家在虚幻的学习过程中非常顺利。希望这篇博客对你有所帮助。

TxNet 1985

php面试笔记(4)-php基础知识-流程控制

在面试中,考官往往喜欢基础扎实的面试者,而流程控制相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中流程控制相关的注意点。

学长冷月的博客 346

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

php面试笔记(6)-php基础知识-正则表达式考点

在面试中,考官往往喜欢基础扎实的面试者,而正则表达式相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中正则表达式相关的注意点。

学长冷月的博客 359

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

php面试笔记(2)-php基础知识-常量和数据类型

本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 面试是每一个PHP初学者到PHP程序员必不可少的一步,冷月将为大家对PHP基础知识;JS、JQuery、AJAX;Linux;MySQL;程序设计题;PHP框架;算法、逻辑思维;高并发解决方案等做一个全方位的解析。 回顾真题 PHP中字符串可以使用哪...

学长冷月的博客 451

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php面试笔记(7)-php基础知识-文件及目录处理考点

在面试中,考官往往喜欢基础扎实的面试者,而文件及目录处理相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中文件及目录处理相关的注意点。

学长冷月的博客 483

php面试笔记(1)-php基础知识-变量和引用变量

面试是从php初学者到php程序员必不可少的一步,很多的面试官更喜欢基础知识扎实的学生。而变量和引用变量是大家比较容易混淆的一点,今天冷月来大家做一个梳理。

学长冷月的博客 667

php面试笔记(8)-php基础知识-会话控制考点

在上一篇中,冷月为大家分享了文件及目录处理考点,大家一定要根据自己的薄弱点进行查漏补缺,尝试着练习目录的复制和删除函数的编写。今天,冷月为大家分享会话控制考点。

学长冷月的博客 578

php面试笔记(5)-php基础知识-自定义函数及内部函数考点

在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中自定义函数及内部函数相关的注意点。

学长冷月的博客 427

php面试笔记(9)-php基础知识-面向对象考点

在上一篇博文中,冷月为大家分享了会话控制的考点,其中 Cookie 和 Session 是其中的重点,对于客户端和服务端中的会话管理,各位小伙伴一定要勤加练习。今天,冷月为大家分享面向对象考点。

学长冷月的博客 512

面试 面向对象php,php面试笔记(9)-php基础知识-面向对象考点

在上一篇博文中,冷月为大家分享了会话控制的考点,其中 Cookie 和 Session 是其中的重点,对于客户端和服务端中的会话管理,各位小伙伴一定要勤加练习。今天,冷月为大家分享面向对象考点。回顾真题请写出 PHP 类权限控制修饰符答案:public:公有类型在类、子类、外部都可以访问protected:受保护类型在类、子类可以访问private:私有类型只要在子类可以访问考点分析本考点主要是考...

weixin_35724224的博客 169

面试php正则手机,php面试笔记(6)-php基础知识-正则表达式考点

在面试中,考官往往喜欢基础扎实的面试者,而正则表达式相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中正则表达式相关的注意点。回顾真题至少写出一种验证139开头的11位手机号码的正则表达式答案: /^139\d{8}$/考点分析很明显,面试官主要想考察大家对于正则表达式组成及编写方法的了解程度。继而衍生出正则表达式的作用: 1.分割分隔符(定界符),主要是正斜线(...

weixin_28985877的博客 145

2019 2020年 php 面试资源都在这里了

PHP面试准备 关于面试/谈Offer/程序员职场生涯等 少写PHP "烂"代码 PHP工程师面试题目 PHPer 面试指南 一个16年毕业生所经历的php面试 找工作遇到的面试题目 大话编程 https://mp.weixin.qq.com/s/13...strace帮助你调试PHP代码 Resetful API 设计规范 Java 基础知识、底层原理 面试 PHP基础数...

迷失的鱼的博客 4949
上一篇: PHP isset函数和empty函数学习
下一篇: PHPstudy安装redis扩展
cyj.com
博客等级 码龄6年 26粉丝 25原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值