php中又很多的可选语法,比如echo


使用echo()和print()都可以输出文本,他们的不同之处在于print()函数有一个返回值1代表输出成功,0代表输出失败,二echo()就没有返回值了。

逻辑表达式中的可选性

我们看下面的语句

<?php
$p = 6 or 0;
var_dump($p);
$p = 6 || 0;
var_dump($p); $p = 6 and 0;
var_dump($p); $p = 6 && 0;
var_dump($p);
?>

一次输出的结果是:
int(6) bool(true) int(6) bool(false)

=的优先级比or要高,所以先赋值再计算or表达式得到true,=的优先级比or要低,所以先计算表达式的值得到true再给$p赋值,=的优先级要比and高所以先给$p赋值再计算表达式的值,=的优先级要比&&低,所以先计算&&表达式的值得到false,再给$p赋值。他们计算得到的值都是true,如下:

<?php
$p = 6 or 0;
var_dump(6 or 0);
$p = 6 || 0;
var_dump(6 || 0); $p = 6 and 0;
var_dump(6 || 0); $p = 6 && 0;
var_dump(6 || 0);
?>

这里输出的结果是:bool(true) bool(true) bool(true) bool(true)

使用定界符代替字符串的引号

我们知道php中的字符串要使用单引号或者双引号包括起来,但是遇到字符串中本身有单引号或者双引号的情况就需要使用转义字符了,这里可以使用定界符代替,如下:

$value = <<<aABC
This is the text aABC that will be included in the ""value variable.
aABC
aABC; echo($value);

代码输出:

This is the text aABC that will be included in the ""value variable. aABC,这里的aABC可以使用任意的字符串代替,单首尾要一致,最后一个aABC需要顶格写,前面不能有空格。

面向对象

类是抽象事物的表现,类中包含自包含的变量和函数,类就像一个蓝图,用这个蓝图我们可以建造不同的个体。来看下面的代码

class Box
{
private $what_is_inside; public function __construct($contents)
{
$this->$what_is_inside = $contents;
} public function get_whats_inside()
{
return $this->$what_is_inside;
}
}

类的定义以class开头,然后是指定一个任意的名字,然后是花括号,变量和方法都定义在这个花括号中。在这个类中我们定义了一个变量和两个方法,当初始化这个类的时候首先会执行构造方法__construct,用来给变量赋值。变量$this表示变量$what_is_inside是Box这个类中的变量,而非类中的函数的变量。$this表示是这个类中的变量,它在类中的任意函数都可以调用到。

属性和方法

面向过程中的变量和函数,在面向过程中我们成为属性和方法,在类中定义函数成为方法,方法提供的对象与标准接口,任何人都可以使用。私有的方法或属性只能在类的内部使用,共有的方法和属性在类的内部和外部都可以使用。

php中的雷同方法的更多相关文章

  1. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  2. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  3. 为什么不能在init和dealloc函数中使用accessor方法

    前言 为什么不要在init和dealloc方法中调用getter和setter:Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:"Don'tUse Accessor M ...

  4. C#中DataTable中的Compute方法使用收集

    原文: C#中DataTable中的Compute方法使用收集 Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详 ...

  5. C#中的扩展方法

    扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 以上是msdn官网对扩展方 ...

  6. C#中的匿名方法

    C#中的匿名方法是在C#2.0引入的,它终结了C#2.0之前版本声明委托的唯一方法是使用命名方法的时代.虽然在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方 ...

  7. Java中是否可以调用一个类中的main方法?

    前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...

  8. 什么情况下才要重写Objective-C中的description方法

    特别注意: 千万不要在description方法中同时使用%@和self,同时使用了%@和self,代表要调用self的description方法,因此最终会导致程序陷入死循环,循环调用descrip ...

  9. PHP中常见魔术方法解析

    <?php class info { private $province; //省 public $city; //城市 private $myname; //姓名 //__construct( ...

随机推荐

  1. OSGi是什么:Java语言的动态模块系统(一)

    OSGi是什么 OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构.OSGi容器已有多家开源实现,比如Knoflerfish.Equinox和Apache的Felix.您 ...

  2. Flex Graphics

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  3. 利用jquery判断点是否在椭圆内

    源码例子下载 : <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  4. Mybatis之简单注解

    Mybatis使用注解实现主键自增长: oracle: @SelectKey(statement="select my_seq.nextval from dual",resultT ...

  5. [LeetCode] Three Sum题解

    Three Sum: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? ...

  6. redis使用及配置之缓存详解

    redis使用及配置之缓存详解 1.Redis的介绍 Redis是一个Key-Value存储系统.它支持存储的value类型有:string(字符串),list(链表), set(无序集合),zset ...

  7. linux ubuntu 安装nginx

    参考原文 在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装. 一.基于APT源安装 sudo apt-get install nginx 安装好的文件位置: ...

  8. Exception in thread "main" java.nio.channels.NotYetConnectedException

    import java.nio.channels.AsynchronousServerSocketChannel; import java.nio.channels.AsynchronousSocke ...

  9. Django2.0之后使用外键时遇到 __init__() missing 1 required positional argument: 'on_delete'

    1.Django2.0之后使用外键时遇到 __init__() missing 1 required positional argument: 'on_delete' 需要在外键创建时给on_dele ...

  10. Oracle 通过出生日期计算年龄

    方法一: SELECT TRUNC(months_between(sysdate, birth)/12) AS age from mytable 方法二: select TRUNC((to_char( ...