首页 > 编程语言 >PHP基础

PHP基础

时间:2022-10-13 00:23:57浏览次数:68  
标签:__ 触发 调用 基础 call PHP 方法

PHP基础

写在前面

简单过一下php的基础语法,记录下与其他语言不同的地方,相同的就直接略过了。

PHP标记风格

<?php 代码 ?>
官方推荐风格
<? 代码 ?>
短标记风格,需配置文件php.ini中开启short+open_tag
<% 代码 %>
ASP风格,需配置文件php.ini中开启asp_tags
<script language=”php”> 代码 </script>
JavaScript标记的风格,这种风格在任何情况下都可以使用。

变量

变量声明

变量类型

PHP 支持 10 种原始数据类型。

四种标量类型:

  • bool(布尔型)
  • int(整型)
  • float(浮点型)
  • string(字符串)

四种复合类型:

  • array(数组)
  • object(对象)
  • callable(可调用)
  • iterable(可迭代)

最后是两种特殊类型:

  • resource(资源)
  • NULL(无类型)

如果想查看某个表达式的值和类型,用 var_dump() 函数。

单引号

定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

// 可以录入多行
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';

// 输出: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// 输出: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

双引号

如果字符串是包围在双引号(")中, PHP 将对以下特殊的字符进行解析:

序列 含义
\n 换行(ASCII 字符集中的 LF 或 0x0A (10))
\r 回车(ASCII 字符集中的 CR 或 0x0D (13))
\t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))
\e Escape(ASCII 字符集中的 ESC 或 0x1B (27))
\f 换页(ASCII 字符集中的 FF 或 0x0C (12))
\\ 反斜线
\$ 美元标记
\" 双引号
\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符,which silently overflows to fit in a byte (e.g. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
\u{[0-9A-Fa-f]+} 匹配正则表达式的字符序列是 unicode 码位, 该码位能作为 UTF-8 的表达方式输出字符串

例如

<?php
echo "Hello World! \n Hello World!";
?>
  
  //输出
  Hello World! 
 Hello World!

数组

可以用 array() 语言结构来新建一个数组array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。可以用短数组语法 [] 替代 array()

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 使用短数组语法
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

数组操作符

implode()和explode()

implode

explode

全局变量

自定义常量

boolean define(string name,mixed value[, bool case_insensitive])
当case_insensitive为true时,常量名不区分大小写

面向对象

魔术方法

__wakeup() //使用unserialize时触发
__sleep() //使用serialize时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__toString() //把类当作字符串使用时触发,file_exists()判断也会触发
__invoke() //当脚本尝试将对象调用为函数时触发

构造函数 __construct,类实例化时调用,构造函数可以有参数

这狗函数__destruct,对象被销毁时调用,不可以有参数

parent关键字:使用parent::关键字访问父类

其他魔术方法

__clone方法会重写clone,当使用clone时,不仅会复制变量,还会执行__clone里面的代码

__autoload()方法会在第一次引用一个类时调用该方法,可以通过定义这个函数来启用类的自动加载

__get/ __set用于处理类内未定义的属性或者处理私有属性

__call

调用流程如下:

$this->a() ==> 当前类a方法 ==> 父类a方法 ==> 当前类__call方法 ==> 父类__call方法

如果触发__call方法,那么a,即方法名,会作为__call的方法的第一个参数,而参数列表会作为__call的方法第二个参数。

来看到代码

function __destruct(){
    $this->a->b();
}

其他

-> 符号用来调用某个对象中的属性或方法,如$this->name $this->setName()
@ 可以屏蔽错误信息,如常见的@eval
const 定义类属性
&$tmp   指向$tmp的引用,类似于指针

标签:__,触发,调用,基础,call,PHP,方法
From: https://www.cnblogs.com/CoLo/p/16786619.html

相关文章

  • PhpStudy+PhpStorm远程调试
    PhpStudy+PhpStorm远程调试环境172.16.4.133:webserver(phpstudy)172.16.4.1:PhpStormPhpstudy配置php扩展钩上xdebugphp.ini修改配置[Xdebug]zend_extension=C:/Us......
  • ThinkPHP 3.2.3 学习
    ThinkPHP3.2.3学习环境要求PHP版本要求PHP5.3以上版本(注意:PHP5.3dev版本和PHP6均不支持)ThinkPHP目录结构下载官方的ThinkPHP后目录如下wwwWEB部署目录(或者子目......
  • python基础-数字类型
    1.数字的简单运算  常用运算符    +,-,*, /,%,//,**        =就是赋值运算符,在变量介绍中已提及过,a=13;    这里要说下赋值运算符的参数运算,......
  • java基础练习
    练习1:判断输入的值是否是偶数,另外,要处理输入错误(目的:熟悉输入、输出,特别是Scanner对象的方法)importjava.util.InputMismatchException;importjava.util.Scanner;pu......
  • Java基础__学习笔记__常用API-Object
    对象类用equals比较的是地址值packageStudyAPIofString;publicclasstest{publicstaticvoidmain(String[]args){students1=newstudent("张三",......
  • react基础
     1.jsx语法//1.定义虚拟dom,不要写引号//2.标签中混入js表达式要用{}constmyId="title"constmyData="HELLOREACT"//1.创建虚拟domconstVDOM=(......
  • 计算机基础
    目录目录目录进制转换命令行进制转换命令行改变目录 cd显示一个目录下的子目录和文件 dir新建目录 md新建文件 cd>test.txt编辑文件 echo内容>test.txt复制文......
  • 部分Java基础进阶内容 - 随笔
    JAVA进阶对象序列化对象要序列化要实现Serializable接口然后通过ObjectInputStream对象读入流来读入一个对象newObjectOutputStream(newxxOutputStream(""))new的......
  • java语言基础
    初识计算机和java语言1.计算机由硬件和软件组成计算机中的主要硬件cpu是计算机中最核心的部件,类似人的大脑一台计算机的运算核心和控制核心都由cpu完成其主要功能是......
  • dedecms系统php.ini register_globals must is Off的解决方案
    访问后台,报错如下图:成因:由于register_globals设置控制PHP变量访问范围,如果开启会引起不必要的安全问题,所以这里对其进行了强制关闭,如果站长的空间不支持,可以采用以下几......