PHP 关于访问控制的和运算符优先级介绍

yizhihongxing

PHP是一种极其流行的后端语言,对于开发者来说掌握PHP的访问控制和运算符优先级非常重要。下面我将为大家详细介绍这两个方面的内容。

PHP访问控制

PHP 有三种访问控制修饰符,它们分别是:public、protected 和 private。

public

当变量或方法被声明为 public 时,它们可以从任何地方进行访问。下面是一个示例:

class Car {
    public $color = "red";

    public function drive() {
        echo "The car is driving.";
    }
}

$myCar = new Car();
echo $myCar->color; // 输出 red
$myCar->drive(); // 输出 The car is driving.

在这个示例中,我们创建了一个名为 Car 的类,该类有一个名为 $color 的公共变量和一个名为 drive() 的公共方法。然后,我们使用 new 关键字创建了一个 Car 的实例,最后我们可以从实例中访问类的 $color 属性和 drive() 方法。

protected

当变量或方法被声明为 protected 时,它们不能从类外部进行访问。但是,可以从该类内部及其子类进行访问。下面是一个示例:

class Car {
    protected $color = "red";

    protected function drive() {
        echo "The car is driving.";
    }
}

class Audi extends Car {
    public function getColor() {
        return $this->color; // 这里 $color 在 Car 类中是 protected 的,可以在 Audi 类中直接访问。
    }
}

$myAudi = new Audi();
echo $myAudi->getColor(); // 输出 red

在这个示例中,我们创建了一个名为 Car 的类,该类有一个名为 $color 的受保护变量和一个名为 drive() 的受保护方法。然后,我们创建了一个名为 Audi 的子类来继承 Car 类。在 Audi 类中,我们可以创建一个名为 getColor() 的方法来获取 $color 变量的值。

private

当变量或方法被声明为 private 时,它们只能从该类内部进行访问。它们不能在类的外部或其子类中访问。下面是一个示例:

class Car {
    private $color = "red";

    private function drive() {
        echo "The car is driving.";
    }
}

$myCar = new Car();
echo $myCar->color; // 这行代码会产生错误,因为 $color 是私有变量。
$myCar->drive(); // 这行代码会产生错误,因为 drive() 是私有方法。

在这个示例中,我们创建了一个名为 Car 的类,该类有一个名为 $color 的私有变量和一个名为 drive() 的私有方法。然后,我们使用 new 关键字创建了一个 Car 的实例。由于 $color 和 drive() 都是私有的,我们不能从实例中访问它们。

PHP运算符优先级

PHP运算符优先级描述了对于一条包含多个运算符的语句,PHP将按照优先级高低依次执行这些运算,以求得正确的计算结果。下面是一些常用运算符及其优先级:

运算符 描述
clone(类型) 类型转换和克隆
++--~! 操作符 (单目,非算术运算符)
** 指数 (比如,2 ** 3 为 8)
*/% 算术运算符
+- 算术运算符
. 字符串连接操作符
<<=>>= 关系运算符
==!= 相等运算符
===!== 全等运算符
&& 逻辑 AND
|| 逻辑 OR
?: 三目运算符
=+=-= 赋值运算符
, 多条语句间的分隔符。其中只有最后一条语句(表达式)会返回

示例

下面是一些示例,演示了 PHP 运算符优先级的应用:

示例一:逻辑运算符和赋值运算符

$a = true;
$b = false;
$c = false;

if ($a || $b && $c) {
    echo "true";
} else {
    echo "false";
}

上面的代码中,如果 $atrue,那么整个表达式结果就是 true,不管 $b$c 的值是什么。这是因为逻辑运算符 || 的优先级要比逻辑运算符 && 低。如果 $afalse,那么整个表达式结果就是 $b && $c 的值,这是因为逻辑运算符 && 的优先级要比赋值运算符 = 高。

示例二:算术运算符和括号

$a = 10;
$b = 20;
$c = 30;

$result = $a + $b * $c;
echo $result; // 输出 610

$result = ($a + $b) * $c;
echo $result; // 输出 900

上面的代码中,第一个表达式的结果是 $a + ($b * $c),因为乘法运算符 * 的优先级要比加法运算符 + 高。第二个表达式使用括号改变了优先级,所以结果是 ($a + $b) * $c

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP 关于访问控制的和运算符优先级介绍 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 织梦dedecms 本地模板安装图文方法

    关于“织梦dedecms 本地模板安装图文方法”的完整攻略,我将分步骤进行讲解,并提供两个示例说明。 步骤1:下载模板 在安装模板之前,首先需要下载所需要的模板。可以在官方网站上下载,也可以在第三方网站上下载,需要注意的是,下载的模板文件必须是zip压缩格式。 步骤2:解压缩模板文件 将下载的zip压缩文件解压缩,可以使用压缩软件,比如WinRAR等。解压缩…

    other 2023年6月27日
    00
  • 微信小程序(四)应用生命周期详解

    我来为您详细讲解一下“微信小程序(四)应用生命周期详解”的完整攻略。 应用生命周期 程序启动 当用户首次打开小程序时,触发onLaunch事件,进行初始化操作,例如获取用户信息、提前获取需要缓存的数据等。 App({ globalData: { userInfo: null, someData: null }, onLaunch: function () {…

    other 2023年6月27日
    00
  • jquery–offset()方法

    jQuery offset() 方法详解 jQuery offset() 方法用于获取或设置匹配元素相对于文档的偏移(位置)。本文将详细讲解 jQuery offset() 方法的语法、返回、示例等内容。 语法 $(selector).offset() 返回值 返回一个对象,包含两个整型属性: 和 left。 示例1:获取元素的偏移位置 以下示例演示如何使用…

    other 2023年5月8日
    00
  • win10预览版10049下载地址 win10 10049官方镜像下载

    Win10预览版10049下载攻略 Win10预览版10049是Windows 10操作系统的一个早期版本,本攻略将详细介绍如何下载Win10预览版10049以及获取官方镜像。 步骤一:访问官方网站 首先,你需要访问微软官方网站以获取Win10预览版10049的下载地址。你可以通过以下链接访问官方网站: 微软官方网站 步骤二:选择下载选项 在微软官方网站上,…

    other 2023年8月4日
    00
  • php协程最简洁的讲解

    以下是“PHP协程最简洁的讲解”的完整攻略: PHP协程最简洁的讲解 协程是一种轻量级的线程,它可以在一线程中实现多个的并发执行。在PHP中,协程可以通过使用Generator和yield关字来实现。本攻略将介绍如何使用PHP协程。 什么是协程 协程是一种轻量级的线程,它可以在一线程中实现多个任务的并发执行。协可以在任务执行时暂停和恢复,从而实现任务之间切换…

    other 2023年5月7日
    00
  • Window系统的批处理变量大全

    Window系统的批处理变量大全攻略 介绍 在Windows系统的批处理脚本中,变量是一种非常有用的工具,可以存储和操作数据。本攻略将详细介绍Window系统的批处理变量,并提供一些示例说明。 系统变量 Windows系统提供了一些默认的系统变量,可以在批处理脚本中直接使用。以下是一些常用的系统变量: %DATE%:当前日期。 %TIME%:当前时间。 %U…

    other 2023年8月16日
    00
  • 零基础详解C语言指针进阶

    零基础详解C语言指针进阶 1. 指针的概念 指针是一种类型,用于存储内存地址。在C语言中,使用指针可以实现对任意内存位置的读写操作,并且可以作为函数参数,从而实现函数之间的数据传递。 2. 指针的创建和赋值 指针的创建和赋值可以分为以下两种方式: 2.1 方式一:通过取地址符&获取变量地址 int a = 10; int *p = &a; 在…

    other 2023年6月27日
    00
  • 利用ceye中的dns来获取数据

    下面是利用 Ceye 中的 DNS 来获取数据的完整攻略,包括 Ceye 的基本原理、使用方法和两个示例说明。 Ceye 的基本原理 Ceye 是一种 DNS 服务,可以用于获取远程主机的 IP 地址和端口信息。Ceye 的基本原理是将 DNS 请求转发到指定的 IP 地址和端口,然后将响应返回给请求方。通过这种方式,可以实现远程主机的信息获取和数据传输。 …

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部