您的位置:首页 > 编程语言 > PHP开发

PHP基础语法

2017-03-06 13:46 127 查看
打印log信息:

echo      速度最快
print     基本类型
print_r   复杂类型比如:数组和对象


1,php标记:
<?php 和 ?>


当解析一个文件时,PHP 会寻找起始和结束标记,也就是
<?php 和 ?>
,这告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。

PHP 也允许使用短标记
<? 和 ?>
,但不鼓励使用。只有通过激活 php.ini 中的 short_open_tag 配置指令或者在编译 PHP 时使用了配置选项 –enable-short-tags 时才能使用短标记。

从 HTML 中分离

<?php if ($expression == true): ?>
This will show if the expression is true.
<?php else: ?>
Otherwise this will show.
<?php endif; ?>


PHP 变量

与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。

变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。

PHP 变量规则:

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)


备注: ASCII 字符从 127 到 255(0x7f-0xff)也是可以的。

$this 是一个特殊的变量,它不能被赋值。

变量默认总是传值赋值

引用赋值:使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)

<?php
$foo = 'Bob';              // 将 'Bob' 赋给 $foo
$bar = &$foo;              // 通过 $bar 引用 $foo  代表是同一个对象
$bar = "My name is $bar";  // 修改 $bar 变量
echo $bar;
echo $foo;                 // $foo 的值也被修改
?>


global 关键字

在方法中使用使用全局变量需要用global进行声明。

<?php
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;

$b = $a + $b;
}

Sum();
echo $b;
?>


或者用通过 $GLOBALS 替代 global

GLOBALS是一个超全局变量,GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。

<?php
$a = 1;
$b = 2;

function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>


使用静态变量,在方法内部使用静态变量

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


现在,变量 $a 仅在第一次调用 test() 函数时被初始化,之后每次调用 test() 函数都会输出 $a 的值并加一。


常量

常量和变量有如下不同:

常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量的作用域而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。


1,可以用 define() 函数来定义常量

// 合法的常量名
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

echo FOO;// 输出something


2,使用关键字 const 定义常量

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';

echo CONSTANT;
?>


类型

PHP 支持 8 种原始数据类型。

四种标量类型:

boolean(布尔型)
integer(整型)
float(浮点型,也称作 double)
string(字符串)


两种复合类型:

array(数组)
object(对象)


最后是两种特殊类型:

resource(资源)
NULL(无类型)


为了确保代码的易读性,本手册还介绍了一些伪类型:

mixed(混合类型)
number(数字类型)
callback(回调类型)


以及伪变量 $…。

可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。

变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。

赋值运算符

基本的赋值运算符是“=”
引用赋值,使用“$var = &$othervar;”语法。


<?php
基本赋值
$a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。

引用赋值
$a = 3;
$b = &$a; // $b 是 $a 的引用

print "$a\n"; // 输出 3
print "$b\n"; // 输出 3

$a = 4; // 修改 $a

print "$a\n"; // 输出 4
print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变
?>


注意:

自 PHP 5 起,new 运算符自动返回一个引用,因此再对 new 的结果进行引用赋值在 PHP 5.3 以及以后版本中会发出一条 E_DEPRECATED 错误信息,在之前版本会发出一条 E_STRICT 错误信息。

比较运算符

$a <> $b     不等
TRUE,如果类型转换后 $a 不等于 $b。

$a <=> $b     结合比较运算符
当$a小于、等于、大于than $b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供.

$a ?? $b ?? $c  NULL 合并操作符
从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。


错误控制运算符

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.

?>


执行运算符

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同


<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>


字符串运算符

有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。

<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"

$a = "Hello ";
$a .= "World!";     // now $a contains "Hello World!"
?>


数组运算符

例子名称结果
$a + $b
联合
$a 和 $b 的联合。
$a == $b
相等
如果 $a 和 $b 具有相同的键/值对则为 TRUE。
$a === $b
全等
如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
$a != $b
不等
如果 $a 不等于 $b 则为 TRUE。
$a <> $b
不等
如果 $a 不等于 $b 则为 TRUE。
$a !== $b
不全等
如果 $a 不全等于 $b 则为 TRUE。
+ 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。


<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);

$a += $b; // Union of $a += $b is $a and $b
echo "Union of \$a += \$b: \n";
var_dump($a);
?>


类型运算符

instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例:

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息