PHP学习笔记1-基础知识

### 基础语法

<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
?>
</body>
</html>

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。不过在 PHP 中,所有变量都对大小写敏感。

PHP 变量规则

变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

创建 PHP 变量

PHP 没有创建变量的命令。
变量会在首次为其赋值时被创建:

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

PHP 是一门类型松散的语言
在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。
PHP 根据它的值,自动把变量转换为正确的数据类型。
在诸如 C 和 C++ 以及 Java 之类的语言中,程序员必须在使用变量之前声明它的名称和类型。

PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部)、global(全局)、static(静态)
local和 global作用域
函数之外声明的变量拥有 global作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 local作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量:

<?php
$x=5; // 全局作用域
function myTest() {
  $y=10; // 局部作用域
  echo "<p>测试函数内部的变量:</p>";
  echo "变量 x 是:$x";
  echo "<br>";
  echo "变量 y 是:$y";
}
myTest();
echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>

如果我们在 myTest() 函数内部输出两个变量的值,y会输出在本地声明的值,但是无法 输出x 的值,因为它在函数之外创建。
然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出x的值,但是不会输出 y的值,因为它是局部变量,并且在 myTest() 内部创建。
注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

global 关键词

global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:

<?php
$x=5;
$y=10;
function myTest() {
  global $x,$y;
  $y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子可以这样重写:

<?php
$x=5;
$y=10;
function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15
?>

static 关键词

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:

<?php
function myTest() {
  static $x=0;
  echo $x;
  $x++;
}
myTest();
myTest();
myTest();
?>

然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
注释:该变量仍然是函数的局部变量。

echo和print语句

echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。

echo 语句

echo 是一个语言结构,有无括号均可使用:echo 或 echo()。

<?php
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";

$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>

print 语句

print 也是语言结构,有无括号均可使用:print 或 print()。

<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";

$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>

数据类型

字符串

字符串是字符序列,比如 “Hello world!”。
字符串可以是引号内的任何文本。您可以使用单引号或双引号:

<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>

整数

整数是没有小数的数字。
整数规则:
整数必须有至少一个数字(0-9)
整数不能包含逗号或空格
整数不能有小数点
整数正负均可
可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:

<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>

浮点数

浮点数是有小数点或指数形式的数字。
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:

<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>

逻辑

逻辑是 true 或 false。

$x=true;
$y=false;

数组

数组在一个变量中存储多个值。
在下面的例子中,我们将测试不同的数组。PHP var_dump() 会返回变量的数据类型和值:

<?php
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>

对象

对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:

<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

NULL 值

特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

字符串函数

strlen() 函数

strlen() 函数返回字符串的长度,以字符计。
下例返回字符串 “Hello world!” 的长度:

<?php
echo strlen("Hello world!");   //返回12
?>

提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。

strpos() 函数

strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
下例检索字符串 “Hello world!” 中的文本 “world”:

<?php
echo strpos("Hello world!","world");
?>

以上代码的输出是:6。
提示:上例中字符串 “world” 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

更多String函数

http://www.w3school.com.cn/php/php_ref_string.asp


时间: 2024-11-02 06:47:50

PHP学习笔记1-基础知识的相关文章

Java泛型的学习笔记[1]—基础知识

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.本文主要描述的是泛型类. Java语言引入泛型的好处:1)最大程度的保证了类型安全:2)简化编译 我们以ArrayList类为例: 1)如果没有泛型,我们要不然需要为每一种类型X编写一个XArrayList类:要不然在ArrayList中用Object的对象来存储数据,然后每次取出对象时使用类型转换:       

JavaScript中的Number数字类型学习笔记_基础知识

使用IEEE754格式来表示整数和浮点数值.浮点数值:该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字.浮点数值需要内存空间是保存整数值的两倍.最高精度是17为小数,但在进行算术运算时其精度远远不如整数. 各种数值类型:十进制,八进制(在严格模式下无效),十六进制 八进制字面量的第一位必须是0,然后是八进制数字序列(0~7).如果字面值中的数值超出了范围,那么前导0将被忽略,后面的数值将被当做十进制数来解析 070//56 079//79 十六进制字面值的前两位必须是0x,后跟十六进

[转]JS宝典学习笔记_基础知识

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转大

Javascript Object 对象学习笔记_基础知识

构造函数new Object() new Object(value) 参数value     可选的参数,声明了要转换成Number对象.Boolean对象或String对象的原始值(即数字.布尔值或字符串).JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象. 返回值 如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例.如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象.Boolean对象或 Str

Ruffy javascript 学习笔记_基础知识

1,javascript的原型模型:prototype 在实现面向对象,(像是定义一个类的时候)需要一个构造函数来定义对象的成员,而方法去依附在该构造函数的原型上. 2,javascript中,为了实现继承,必须将子类构造函数的prototype设置为一个父类的对象实例. 3,css的方块套方块模型: 最外是margin 是用来设置一个元素所占的空间的边缘到相邻元素的距离 边框:border 用来设定一个元素的连线 padding 用来设置元素内容互元素边框的距离 还有背景属性是content

JavaScript基础知识学习笔记_基础知识

JavaScript简介 一.定义:JavaScript是脚本语言,需要宿主文件,它的宿主文件是html文件. JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. 二.用法: 在html中的位置有三块: 1)head里面: 2)body里面: 3)</html>之后,为了保险起见一般写在</html>之后.<script language=&quo

ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧

  ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧,艺术家使用ps,摄影师使用ps,数码玩家们也使用ps,与此同时,web设计湿更是离不开PS !该软件气势空前鼎盛,无人不知无人不晓.图层面板是自由独立于ps工作空间里面的一个面板.在这个神奇的图层里面,我们可以缩放.更改颜色.设置样式.改变透明度,等等等等.一个图层代表了一个单独的元素,设计师可以任意更改之.图层可以说在网页设计中起着至关重要的作用.他们用来表示网页设计的元素,他们是用来显示文本框.图像.背景.内容和更多其他元素的基底

mybatis学习笔记之基础框架(2)

mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句 mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射) SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定) 配置了数据源/事务等mybatis运行环境 配置映射文件(配置sql语句) m

mybatis学习笔记之基础复习(3)

mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输入参数映射.输出结果映射) mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便, 适用于需求变化较多项目,比如互联网项目. mybatis框架执行过程: 1.配置mybatis的配置文件,SqlMapConfig.xml(名称不固定) 2.通过配置文件,

JavaScript 学习笔记之基础中的基础_基础知识

概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript  ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) 1.1ECMAScript ECMAScript是通过ECMA-262标准化的脚本语言,ECMA-262规定语言的:语法.类型.语句.关键字.保留字.操作符.对象 1.2 DOM DOM把整个页面映射为一个多层节点结构,HTML或者XML等页面中的每个组成部分都是某种类型的节点,这些节点又包含不同类