2019-05-11 学习笔记(一)

PHP变量

变量是存储信息的容器:
实例:

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
11
  • PHP 变量可用于保存值和表达。

变量规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感(y 与Y 是两个不同的变量)

创建变量

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

注:如果为变量赋的值是文本,应用引号包围

在php中,php会根据其值,自动把变量转换为正确的数据类型。

变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:

  • local(局部)
  • global(全局)
  • static(静态)

Local和Llobal作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 Local 作用域,只能在函数内部进行访问。

  • 可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

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; 
?>

static关键词

当一个函数完成时,它的变量通常都会被删除。当不需要删除某个局部变量时,可以在第一次声明变量时使用static关键词。
例:


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

myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
?>  

输出结果

0
1
2
3
4

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

  • 注:该变量仍然是函数的局部变量。

PHP echo 和 print 语句

echo 和 print 之间的差异:

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

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

  • 使用print 和echo命令来显示字符串和变量的格式完全相同。

PHP 数据类型

字符串、整数、浮点数、逻辑、数组、对象、NULL

字符串

字符串可以是引号内的任何文本,可以使用单引号或双引号。

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

整数

整数规则:

  • 整数必须有至少一个数字(0-9)
  • 整数不能包含逗号或空格
  • 整数不能有小数点
  • 整数正负均可
  • 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
    例:
    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);
?>

输出结果

int(5985)
int(-345)
int(140)
int(39) 

浮点数

浮点数是有小数点或指数形式的数字。
例:

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

输出结果

float(10.365)
float(2400)
float(8.0E-5) 

数组

数组在一个变量中储存多个值
例:

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

输出结果

array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB" }

对象

对象是存储数据类型和有关如何处理数据的信息的数据类型。
在php中,必须明确的声明对象。首先,必须声明对象的类,对此,使用class关键词。然后在对象类中定义数据类型,在该类的实例中,然后使用此数据类型。
例:

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

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "$prop = $val";
   }
}

// instantiate one object
$herbie = new Car("white");

// show herbie properties
echo "herbie: Properties";
print_vars($herbie);

?>  

输出结果

herbie: Properties color = white 

NULL值

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

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

输出结果

NULL

字符串函数

strlen()函数

返回字符串的长度

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

str_word_count() 函数

对字符串中的单词进行计数

strrev() 函数

反转字符串

strpos()函数

用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则会返回false。
例:

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

输出为 6

  • 字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

替换字符串中的文本

str_replace()函数用一些字符串替换字符串中的另一些字符。
例:

<?php
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
?>

输出

Hello Kitty!

PHP常量

常量是单个值的标识符。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前没有$符号)。

  • 注:与变量不同,常量贯穿整个脚本是自动全局的。

设置php常量

如需设置常量,使用define()函数,它三个参数:
1.首个参数定义常量的名称
2.第二个参数定义常量的值
3.可选的第三个参数规定常量名是否对大小写不敏感。默认是false。
例:

  • 对大小写敏感的常量
<?php
define("GREETING", "Hello World!");
echo GREETING;
?>

输出

Hello World!
greeting
  • 对大小写不敏感的常量
<?php
define("GREETING", "Hello World!",true);
echo greeting;
?>

输出结果

Hello World!
Hello World!

常量是全局的

常量是自动全局的,而且可以贯穿整个脚本使用。
例:

<?php
define("GREETING", "Hello World!");

function myTest() {
    echo GREETING;
}
 
myTest();
?>

输出结果

Hello World!

PHP运算符

算术

例:

<?php 
$x=17; 
$y=8;
echo ($x + $y); // 输出 25
echo ($x - $y); // 输出 9
echo ($x * $y); // 输出 136
echo ($x / $y); // 输出 2.125
echo ($x % $y); // 输出 1
?>

赋值

例:

<?php 
$x=17; 
echo $x; // 输出 17

$y=17; 
$y += 8;
echo $y; // 输出 25

$z=17;
$z -= 8;
echo $z; // 输出 9

$i=17;
$i *= 8;
echo $i; // 输出 136

$j=17;
$j /= 8;
echo $j; // 输出 2.125

$k=17;
$k %= 8;
echo $k; // 输出 1
?>

字符运算符

. :串接
.= :串接赋值
例:

<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!

$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>

递增/递减

image.png

例:

<?php
$x=17; 
echo ++$x; // 输出 18

$y=17; 
echo $y++; // 输出 17

$z=17;
echo --$z; // 输出 16

$i=17;
echo $i--; // 输出 17
?>

比较

image.png

逻辑

image.png

数组

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容