//PHP代码
echo "hello world!"; //以分号结束语句
/*注释*/
?>
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
变量不需要定义,在第一次赋值时自动创建。
$x = 10;
$y = 20;
function test()
{
$y = 9;
global $x;
echo $x; //x=10
echo $y; //y=9
}
test();
?>
全局变量保存在GLOBALS数组中,可以在函数内访问:
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
static $x=0;
echo和print是用来输出的。
echo可以多个字符串连起来,逗号分割。
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "
";
echo "在 $txt2 学习 PHP ";
echo "
";
echo "我车的品牌是 {$cars[0]}";
?>
字符串可以以单引号或双引号括起来
整型可以用三种格式来指定:
1. 十进制
2. 十六进制( 以 0x 为前缀)
3. 八进制(前缀为 0)
$x = true;
PHP var_dump() 函数可以返回变量的数据类型和值:
echo var_dump(555);
var_dump("hello");
?>
创建数组
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
$x="Hello world!";
$x=null;
var_dump($x);
?>
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING; // 输出 "欢迎访问 Runoob.com"
echo '
';
echo greeting; // 输出 "greeting"
?>
PHP只有一个字符串运算符.,用于将两个字符串连接起来
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
strlen() 返回字符串长度
strpos() 查找字符串位置
echo strpos("Hello world!","world");
?>
对于中文:
echo strlen("中文字符"); // 输出 11
?>
/*输出结果为 12,因为一个中文占 3 个字符数。
可以使用 mb_strlen 设置指定编码输出中文字符个数:*/
echo mb_strlen("中文字符",'utf-8'); // 输出 4
?>
取反: -x
赋值运算符: =,+=,-=等等
递增递减: x++,x–
x == y 等于,不同类型的比较会强转
x === y 绝对等于,仅当x等于y且类型相同才返回true
and or xor && || !
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true
? :
$c = $a <=> $b;
这句代码的意思是:
如果 $a > $b, $c 的值为 1
如果 $a == $b, $c 的值为 0
如果 $a < $b, $c 的值为-
运算符的优先级口诀:括(号)、单(操作数)、算(术)、移(位)、关(系);位(运算符)、逻(辑)、条(件)、赋(值)、逗(号)。
// 优先级: && > = > and
// 优先级: || > = > or
$a = 3;
$b = false;
$c = $a or $b;
var_dump($c); // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d); //这里的 $d 就是 boolean 值 true
?>
if(条件)
条件若是数值,则只要不是0就代表是true;
条件若是字符串,则空字符串代表false
if..else..
if..elseif..else
switch(){case x:}
与java一样
类型:
数值数组-带有数字ID键的数组
关联数组-带有指定的键的数组
多维数组-包含一个或多个数组的数组
数值ID数组
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
count()
遍历数值数组
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "
";
}
?>
遍历关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "
";
}
?>
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 v a l u e 并 且 数 组 内 部 的 指 针 向 前 移 一 步 ( 因 此 下 一 次 循 环 中 将 会 得 到 下 一 个 单 元 ) 。 第 二 种 格 式 做 同 样 的 事 , 只 除 了 当 前 单 元 的 键 名 也 会 在 每 次 循 环 中 被 赋 给 变 量 key。
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() -
根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
排序直接影响原数组
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
全局变量数组
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
由web服务器创建,保存server信息
echo $_SERVER['PHP_SELF'];
echo "
";
echo $_SERVER['SERVER_NAME'];
echo "
";
echo $_SERVER['HTTP_HOST'];
echo "
";
echo $_SERVER['HTTP_REFERER'];
echo "
";
echo $_SERVER['HTTP_USER_AGENT'];
echo "
";
echo $_SERVER['SCRIPT_NAME'];
?>
收集表单中提交的数据
<html>
<body>
<form method="post" action="">
Name: <input type="text" name="fname">
<input type="submit">
form>
$name = $_REQUEST['fname'];
echo $name;
?>
body>
html>
while(..)…
do while(..)
for(..;..;..)
以上同JAVA
function func()
{
//要执行的代码
}
?>
返回类型不需要定义
function add($x, $y)
{
return $x + $y;
}
echo '1+2=' . add(1,2);
?>
PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
LINE和 FILE
用于显示当前行和当前文件
echo __LINE__.' ';
echo __FILE__;
?>
__DIR__ 文件缩在目录
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__TRAIT__ trait名
__METHOD__ 类的方法名
__NAMESPACE__ 当前命名空间
在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。
namespace MyProject; // 命名空间前出现了“” 会致命错误 - 命名空间必须是程序脚本的第一条语句
?>
类定义
class Hero
{
private $name;
private $sex;
public function __construct($name, $sex)
{
$this->name = $name;
$this->sex = $sex;
}
public function __destruct()
{
echo 'Hero:'.$this->name.'销毁。';
}
function jump()
{
echo $this->name.' jump!'.'';
}
function run()
{
echo $this->name.' run!'.'
';
}
}