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. mongodb-脏数据问题

    采用多线程后, 发现最大的问题是redis和mongodb的脏数据问题 1, upsert 的脏数据问题 多线程对同一个collect进行upsert操作时, 会引发并发脏数据问题, 最开始的解决方案 ...

  2. InnoDB的后台线程(IO线程,master线程,锁监控线程,错误监控线程)和内存(缓冲池,重做日志缓冲池,额外内存池)

    InnoDB有多个内存块,你可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构. 缓存磁盘上的数据,方便快速地读取,并且在对磁盘文件的数据进行修改之前 ...

  3. leetcode简单题目两道(4)

    心情还是有问题,保持每日更新,只能如此了. Problem Given a binary tree, return the level order traversal of its nodes' va ...

  4. 使gitignore生效

    git rm -r --cached . // 删除本地缓存 git add . // 添加要提交的文件 初次提交直接声明gitignore并提交就可以: 非初次提交,改动的gitignore要进行上 ...

  5. 解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    Vue的项目中,如果项目简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式 进行传递 但是如果是大中型项目中,很多时候都需要在不相关的平行组件之间传递数据,并且很多数据需要 ...

  6. 如何将本地文件通过终端上传到linux服务器或从linux主机下载文件到本地

    第一种方式: SecureCRT下上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下.下载文件只需在shell终端仿 ...

  7. [转]C#中Timer使用及解决重入问题

    本文转自:http://www.cnblogs.com/hdkn235/archive/2014/12/27/4187925.html ★前言 打开久违的Live Writer,又已经好久没写博客了, ...

  8. mybatis 排坑记录

    1. mapper xml resultMap 中定义 property 时不能出现空格 否则会出现反射错误,找不到 do 对应的 set 方法

  9. BZOJ5068: 友好的生物(状压 贪心)

    题意 题目链接 Sol 又是一道神仙题??.. 把绝对值拆开之后状压前面的符号?.. 下界显然,但是上界为啥是对的呀qwq.. #include<bits/stdc++.h> using ...

  10. Linux / mysql: is it safe to copy mysql db files with cp command from one db to another?

    Copying is very simple for MyISAM and completely 100% risky (near suicidal) with InnoDB. From your q ...