echo 和 print
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
区别:echo 可以打印多个,print 只能打印一个
$x = 123;
$y = 456;
echo $x, $y;//123456
print $x,$y;//报错
var_dump()
函数显示关于一个或多个表达式的结构信息,
包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
一般调试的时候用于输出数据以及数据类型
php没有变量申明
变量在你第一次赋值给它的时候被创建
数据类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
字符串:
<?php
$txt="Hello world!";
echo $txt;//Hello world!
//并置运算符: 在 PHP 中,只有一个字符串运算符(.) 用于把两个字符串值连接起来。
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;//Hello world! What a nice day!
//strlen() 函数返回字符串的长度(字符数)。
echo strlen("Hello world!");//12
//strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
//如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
echo strpos("Hello world!","world");//6
?>
数组:
在 PHP 中,array() 函数用于创建数组:
- 在 PHP 中,有三种类型的数组:
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
<?php
//数值数组
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";//I like Volvo, BMW and Toyota.
//关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";//Peter is 35 years old.
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59)
);
print_r($cars);//( [0] => Array ( [0] => Volvo [1] => 100 [2] => 96 ) [1] => Array ( [0] => BMW [1] => 60 [2] => 59 ) )
//多维数组
$sites = array
(
"runoob"=>array
(
"菜鸟教程",
"http://www.runoob.com"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘宝",
"http://www.taobao.com"
)
);
print("<pre>"); // 格式化输出数组
print_r($sites);
/*
Array
(
[runoob] => Array
(
[0] => 菜鸟教程
[1] => http://www.runoob.com
)
[google] => Array
(
[0] => Google 搜索
[1] => http://www.google.com
)
[taobao] => Array
(
[0] => 淘宝
[1] => http://www.taobao.com
)
)
*/
print("</pre>");
?>
<?php
//获取数组的长度 - count() 函数
$cars=array("Volvo","BMW","Toyota");
echo count($cars);//3
echo "<br>";
//遍历数值数组
//法一
$cars=array("Volvo ","BMW ","Toyota ");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
}//Volvo BMW Toyota
echo "<br>";
//法二
$x = array("one", "two", "three");
foreach ($x as $value) {
echo $value . " ";//one two three
}
//遍历关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
}//Key=Peter, Value=35Key=Ben, Value=37Key=Joe, Value=43
?>
PHP - 数组排序函数
<?php
$age=array("Peter"=>"37","Ben"=>"35","Joe"=>"43");
sort($age);//sort() - 对数组进行升序排列
print_r($age);//Array ( [0] => 35 [1] => 37 [2] => 43 )
echo "<br>";
rsort($age);//rsort() - 对数组进行降序排列
print_r($age);//Array ( [0] => 43 [1] => 37 [2] => 35 )
echo "<br>";
$age=array("Peter"=>"37","Ben"=>"35","Joe"=>"43");
asort($age);//asort() - 根据关联数组的值,对数组进行升序排列
print_r($age);//Array ( [Ben] => 35 [Peter] => 37 [Joe] => 43 )
echo "<br>";
arsort($age);//arsort() - 根据关联数组的值,对数组进行降序排列
print_r($age);//Array ( [Joe] => 43 [Peter] => 37 [Ben] => 35 )
echo "<br>";
ksort($age);//ksort() - 根据关联数组的键,对数组进行升序排列
print_r($age);//Array ( [Ben] => 35 [Joe] => 43 [Peter] => 37 )
echo "<br>";
krsort($age);//krsort() - 根据关联数组的键,对数组进行降序排列
print_r($age);//Array ( [Peter] => 37 [Joe] => 43 [Ben] => 35 )
echo "<br>";
?>
函数:
函数准则:
- 函数的名称应该提示出它的功能
- 函数名称以字母或下划线开头(不能以数字开头)
<?php
function writeName($fname,$punctuation){
$result = $fname . " Refsnes" . $punctuation . "<br>";
return $result;
}
echo "My name is ".writeName("Kai Jim",".");
echo "My sister's name is ".writeName("Hege","!");
echo "My brother's name is ".writeName("Ståle","?");
/*
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Ståle Refsnes?
*/
?>
var_dump()
函数返回变量的数据类型和值:
<?php
//字符串
{
$x = 'hello world';
var_dump($x);//string 'hello world' (length=11)
}
//整型
{
$x = 5985;
var_dump($x);//int 5985
echo "<br>";
$x = -345; // 负数
var_dump($x);//int -345
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);//int 140
echo "<br>";
$x = 047; // 八进制数
var_dump($x);//int 39
}
//浮点型
{
$x = 10.365;
var_dump($x);//float 10.365
echo "<br>";
$x = 2.4e3;
var_dump($x);//float 2400
echo "<br>";
$x = 8E-5;
var_dump($x);//float 8.0E-5
}
//布尔型
{
$x = true;
var_dump($x);//boolean true
echo "<br>";
$x = false;
var_dump($x);//boolean false
}
//数组
{
$cars = array("Volvo", "BMW", "Toyota");
var_dump($cars);
/*
array (size=3)
0 => string 'Volvo' (length=5)
1 => string 'BMW' (length=3)
2 => string 'Toyota' (length=6)
*/
}
//对象
{
class Car
{
var $color;
function __construct($color = "green")
{
$this->color = $color;
}
function what_color()
{
return $this->color;
}
}
function print_vars($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
// 实例一个对象
$herbie = new Car("white");
// 显示 herbie 属性
var_dump($herbie);//object(Car)[1]; public 'color' => string 'white' (length=5)
echo "\therbie: Properties\n";
print_vars($herbie);//herbie: Properties color = white
}
//NULL值
{
$x = "Hello world!";
$x = null;
var_dump($x);//null
}
?>
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 hu.com");
echo GREETING; // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting; // 输出 "greeting"
// 不区分大小写的常量名
define("GREETING", "欢迎访问 haobo.com", true);
echo greeting; // 输出 "欢迎访问 Runoob.com"
//常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
function myText(){
echo greeting;
}
myText();//欢迎访问 haobo.com
?>
EOF
(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行(注释也不行)且前后不能空格
$name="runoob";
$a= <<<EOF
"abc"
$name
"123"
EOF;
// 结束需要独立一行(注释也不行)且前后不能空格
echo $a;//"abc" runoob "123"
?>