PHP是什么?

  • php是一个脚本语言,它运行在服务器端并会以纯文本的形式返回到服务器,它是免费的。
  • php可以对数据库中的数据进行:增删改查,可以对数据进行加密,接收表单。
  • php的文件后缀是.php,.php中可以包含HTML,CSS,JavaScript,PHP代码。
  • (额。。因为初学实在想不出更多,以后再添加吧)。

PHP与Apache的关系

举例:有一家餐馆,顾客(上网的人)向服务员(apache)点餐,像饮料(假设是HTML文件),甜品(假设是javascript)之类的服务员不用通知厨师(php)它会自动给顾客呈上(web网页),当顾客点了菜单中的一道菜(.php),服务员将通知厨师,由厨师工作完毕后返回给服务员后,服务员给顾客呈上(web)。--------(个人愚见,欢迎批评)

PHP基本语法

PHP脚本是以"<?php"开头  "?>"结尾的

<?php
// 你可以在此编程
?>

来瞅瞅变量呗~?

<?php
$someValue = "这是一个变量,字符串类型。变量是以'$'声明的";
?>

哦 对,变量值是有类型滴,php不像swift那样需要声明类型,它会自动推断。

<?php
// 字符串
$someString = "一段字符串";
// 整数
$someInteger = 27;
// 浮点数
$someFloat = 3.16;
// bool型(逻辑)  ture or false
$someBool = false;
// 数组
$someArray = array(12, 32, 3e3);
?>

PHP的输出函数

php有两个输出函数:

  • print:只能输出一个字符串,并且有返回值,返回值为1。
  • echo:能输出一个以上的字符串,它没有返回值 所以比print更加效率一些。
<?php
echo "echo可以输出任何形式的内容<br />";
echo "<h1>还有这样</h1>";
$names = array("Vans", "Lee", "Supreme");
echo "echo还可以输出变量{$names[0]},当使用变量时最好以花括号包裹变量。";
?>

PHP的类型判断

  • 由于PHP在声明变量的时候是自动推断,so 在测试的时候咱有时需要用几个方法来判断一个变量是什么类型的。
  • var_dump:这个方法会打印一个变量的相关信息。
  • isset:判断一个变量是否被设置,返回一个bool值。empty:判断一个变量是否为空,以下几种情况均视为空并返回true:

    • "" (空字符串)
    • 0 (作为整数的0)
    • 0.0 (作为浮点数的0)
    • "0" (作为字符串的0)
    • NULL
    • FALSE
    • array() (一个空数组)
    • $var; (一个声明了,但是没有值的变量)
<?php
$a = 0;
$b = "";
$c = NULL;
$d;
// var_dump 会打印一个变量的信息
var_dump($a);

// isset 会判断变量是否被设置
if (isset($a)) {
    echo "a被设置为 int(0),所以会返回true";
}

if (isset($c)) {
    echo "变量c是NULL 等于没有设置值。";
} else {
    echo "会返回false";
}

if (isset($d)) {
    echo "变量d没有被设置。";
} else {
    echo "会走到这行代码,isset返回的是false";
}

// empty
if (empty($b)) {
    echo "";
} else {
    echo "会走到这行代码,因为变量b是空串,但如果是isset($b)的话,会返回true、因为变量b已经设置为空串。";
}
?>

PHP的自动类型转换和强制类型转换

先来瞧个"栗子":

<?php

$a = 20, $b = "30px";

// a是int型,b是string型,如果这两个变量进行运算的话会发生啥?
$c = $a + $b;

// PHP会进行自动类型转换,将变量b转换为30,其后面的"px"会被舍弃。
var_dump($c);
?>

来看看自动类型转换的规则和强制类型转换的方法:

<?php

// 如果一下变量转换为int的话:
$a = "30cm";        // 30。
$b = "vans1966";    // 0,当字符串首个字符不是数字的话 会被自动转换成为0.
$c = 5.69;            // 5。
$d = true;            // 1。
$e = false;            // 0。

// 这是强转int的函数:
intval($a);

// 如果一下变量转换为bool的话:
$a = "30cm";        // true
$b = "";            // false
$c = 5.69;            // true
$d = 0;                // false
$e = NULL;            // false
$f = 0.0;            // false

// 这是强转bool的函数:
boolval($a);

// 如果一下变量转换为string的话:
$a = 30;            // "30"
$b = 0.0;            // "0.0"
$c = 5.69;            // "5.69"
$d = 0;                // "0"

// 这是强转string的函数:
strval($a);
?>

我的PHP之旅--认识PHP的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  3. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  4. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  5. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

  6. 【Knockout.js 学习体验之旅】(3)模板绑定

    本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  7. 【Knockout.js 学习体验之旅】(2)花式捆绑

    本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  8. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  9. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  10. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

随机推荐

  1. 16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17

    EOBD2.FR is offering 16% discount off the latest MPPS V16 ECU chip tuning tool. The device is now so ...

  2. Linux 的使用基础---Linux的常用命令

    自己电脑的安装的软件太多了,如果重装linux系统的话,是在是太麻烦了,本身电脑系统是32位的,硬件上的配置也行,所以就安装了虚拟机,在虚拟机上又安装了一个Linuxd 系统,虽然速度是有些慢,总比浪 ...

  3. Airbnb创始人:屌丝的逆袭之路

    这位黑发小帅哥名叫Brian Chesky,是Airbnb的联合创始人. 如果在百度一下Airbnb,你就会看到如下事实:Airbnb,即Air Bed and Breakfast,中国名“空中食宿” ...

  4. dedecms内容管理

    dedecms中的内容模型是指文章.软件.商品等类型的文章字段模板.在dedecms中,文章数据由文章主表和文章附加表构成,主表存放文章公共拥有的信息,比如标题,添加时间,点击量等,文章附加表存放文章 ...

  5. 有关line-height的见解

    line-height:简单的说就是行高,是两行文字之间基线的距离.基线是指在英语的书写的4线3格中,从上往下数的第三条线 1.line-height与行内框盒子模型 所有内联元素的样式表现都与行内框 ...

  6. webstorm卡、闪退以及win10中jdk配置

    今天 webstorm 突然一直处于 indexing 索引状态,然后就卡死,重装也无法解决. 搜了一下后,有人说使用 64 位客户端打开就ok. 尝试打开 64 位的客户端,但是报错,没有64位 j ...

  7. Json-lib - java.util.Date 转换问题

    使用 JSON-lib 将 java.util.Date 对象直接转换成 JSON 字符串时,得到的通常不是想要格式: System.out.println(JSONSerializer.toJSON ...

  8. Win8.1中打不开IE的解决方法

    IE11 打不开了,重新安装了IE也解决不了问题,咋整,找了好久终于找到原因,原来是权限的问题,特此和大家共享 解决办法: WIN+R,regedit,找到HKEY_CURRENT_USER\Soft ...

  9. xxx is not in the sudoers file.This incident will be reported.的解决方法

    1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers 3.编辑sudoers文件vi /etc/sud ...

  10. 将多维数组转换为支持curl提交的一维数组格式

    /** * @desc 多维数组转化为支持curl提交数组 * @author lytian 2013-06-29 */ public function toPost(array $params = ...