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

php基础详解之变量,常量,数据类型,类型转换,运算符,分支与循环

2018-11-13 19:56 537 查看

PHP的写法和用法

php文件可以写HTML,scc,以及js php代码必须写在phpphp标记中
标记的写法:<?php ?>

<?php
header("Content-type:text/htl;charset=utf-8");
//php的3种打开方式
//打开地址   http://localhost/php-shh180803/php01/first.php  localhost代表www文件夹
//本地查看    http://127.0.0.1/php-shh180803/php01/first.php
//手机查看局域网   http://10.80.7.14/php-shh180803/php01/first.php
//默认输出echo,只能输出字符或数字,相当于直接在body标签展示
echo "hello world";
//浏览器会默认将响应给其他带标签字符串解析成页面标签
echo "<h1>啊啊啊啊,好难啊</h1>";
?>
<style>
h1{
background-color: #FF0000;
background-color:<?php echo "yellow" ?>;
}
</style>
<h1 style="background-color:<?php echo "blue" ?>;">么么么额嗯嗯嘛</h1>

<script type="text/javascript">
var h1 = document.getElementsByTagName("h1")[0];
h1.onclick = function(){
h1.style.backgroundColor ="green";

}
var a = <?php echo 10 ?>;
console.log(a);
var b = "<?php echo "hello world" ?>";
console.log(b);
</script>

声明变量

<?php
/*
*  变量:
* 声明变量:声明变量使用$,使用时一定要加$
* 变量命名规则
* 1、变量名有数字、字母、下划线组成
* 2、变量不能以数字开头 中间不能有空格
* 3、不能使用关键字,保留字
* 4、必须使用驼峰命名法
*/
$a = "hello world";
echo $a;

/*
* 变量的赋值运算
* 对于PHP下的基本数据类型来说默认使用值的赋值,但是也能通过&进行引用赋值
*/

/*
* 值的传递
*
*/
$a = 10;
$b = $a;
echo $a."&nbsp;",$b;//10,10
echo "<hr/>";//换行
$b = 5;
echo $a."&nbsp;",$b;//10 5

//址的传递(引用赋值)
$a = 10;
$b = &$a;
echo $a;//10
echo "&nbsp";
echo $b;//10
$b = 5;
echo $a;//5
echo "&nbsp;";
echo $b;//5

//变量的变量:可以直接将一个变量的值作为下一个变量的名
$a = "hello";
$hello = "world";
echo $$a;//world

$a = "hi";
$$a = "world";
echo $hi;//world
?>
<script type="text/javascript">
var $abc;
//完成一个对象拷贝
var obj = {
a:1,
b:2,
c:3
}
//对于Object以及Array这些引用类型在进行赋值时,先后获共用堆里面的同一个位置,一旦一个发生改变另一个也会发生改变,这种赋值就称为引用赋值
var str = JSON.stringify(obj);//将对象或JSON转成字符串
console.log(str);
var obj2 = JSON.parse(str);//将对象类型的字符串转成对象或JSON
console.log(obj2);
obj2.a = 100;
console.log(obj,obj2);
//php 没有变量声明提升
</script>

超全局变量

<?php
//超全局变量:无论在那个页面都可以使用的变量就成为超全局变量(以被PHP预定义)
//$_SERVER:包含操作系统,服务器,浏览器信息,文件信息
//输出数组 print_r
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
echo $_SERVER["SERVER_NAME"];//输出当前主机名
echo $_SERVER["HTTP_USER_AGENT"];//输出用户代理
echo "<hr/>";
echo $_SERVER["REQUEST_URI"];//输出当前请求文件的地址
//$_GET:获取向当前PHP传输get请求时所携带的参数
//$_POST:获取向当前PHP传输post请求时所携带的参数
echo "<pre>";
print_r($_GET);
echo "</pre>";

echo '<pre>';
print_r($_POST);
echo "</pre>";

//$_REQUEST:获取get请求以及post请求方式的参数,但是安全性不高且缓慢,不推荐使用
echo "<pre>";
print_r($_REQUEST);
echo "</pre>";

//$_COOKIE:可以进行cookie的进行设置以及获取
$_COOKIE["username"] = "sita";
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";

//$_SESSION:可以获取或设置存储在服务器端的会话储存
session_start();//开启session
$_SESSION["username"] = "xxx";
$_SESSION["pwd"] = 123444;
echo "<pre>";
print_r($_SESSION);
echo "</pre>";

$a = 10;
$b = "hello world";
//$GLOBALS:获取本脚本中的全局变量
echo "<pre>";
print_r($GLOBALS);
echo "</pre>";
echo 0; //0
$c = "hi";
echo $GLOBALS['a'] == $a;//1
echo $GLOBALS['a'] != $a;//啥都没有

//$_FILES:获取所上传的文件
//
1.<pre></pre>是html标签,意思是按原样输出不做更改。
2.php代码中用pre主要是做错误代码输出时候,或者打印数组输出起到保持格式的统一性。

?>

常量

<?php
//常量
/*
* 一经定义就无法改变的量
*
*常量的定义方法:default(常量名,常量值)
* 默认常量名为大写
* 常量的生命周期为开始定义到页面结束(整个页面)
*
*/
define("PI",3.141592653);
echo PI;
//	PI = 3.14;
//	echo PI;    报错

echo "<hr/>";
echo PI;
define("PI",3.14);

//魔术常量:php预定义一些常量,由于使用的位置不一样得到的结果就会不一样,就称之为魔术常量
echo "<hr/>";
echo __DIR__;//获取当前访问文件的目录名
echo "<hr/>";
echo __FILE__;//获取当前访问文件的系统盘的文件名
echo "<hr/>";
echo __LINE__;//获取当前行的行号

function fn(){
echo __FUNCTION__;//获取当前函数的函数名
}
fn();
echo "<hr/>";
class myClss{
function show(){
echo __CLASS__;//获取当前的类的名字
echo "<hr/>";
echo __METHOD__;//获取当前的方法名
}
}
$obj = new myClss();//实例化一个对象
$obj -> show();//使用实例化对象的方法
?>

数据类型

<?php
/*
* 数据类型
* 基本数据类型
* 整型(interge),浮点型(float),字符串(string),布尔(boolean)
*
* 复杂数据类型
* 对象(object),数组(Array)
* 特殊数据类型
* 资源(resource),null
*/

//整型:整数类型的数据
$a = 10;
//gettype:获取某个值的数据类型
echo gettype($a);//interge
echo "<hr/>";
$a = 0xff;//十六进制数
echo $a;//255
echo gettype($a);//interge
$a = 0777;
echo $a;//511
echo gettype($a);//interge
echo "<hr/>";
$a = 0b1010;//二进制
echo $a;//10
echo gettype($a);//interge

//浮点型
echo "<hr/>";
$b = 1.482489;
echo gettype($b);//double
echo "<hr/>";
$b = 3e10;//3*10^10NNZ
echo gettype($b);//double
echo "<hr/>";

//字符串
$str = "hello world";
echo gettype($str);//string
echo "<hr/>";
var_dump($str);//输出任何类型的数据并显示改数据的类型
$str = "hi hi hi";
echo "<hr/>";
echo gettype($str);//string

echo "<hr/>";
$str = "\"\"";
echo $str;//""
echo gettype($str);//string
echo "<hr/>";

//定界符
$str = <<<EOF
hjasdhjq
j	qwkdh
jk	whdjk
EOF;

echo $str;
echo "<hr/>";
echo gettype($str);//string

$bol = true;
gettype($bol);//boolean
$bol = false;
gettype($bol);//boolean

//数组类型
echo "<hr/>";
$arr = [1,2,3,4];
$arr =["hello","world","today","happy"];
//关联数组:下标为字符串的数组
$arr["魔都"] = "上海";
$arr["首都"] = "北京";
$arr["雾都"] = "伦敦";
echo "</pre>";
var_dump($arr);
echo "</pre>";
echo gettype($arr);//array
echo $arr["首都"];
echo "<hr/>";

//对象:必须通过实例化类才有

class People{
public $user = "xxxx";
public $age = 18;
public $sex = "女";
function say(){
echo $this -> age;
}
}
$person = new People();
echo gettype($person);//object

$person -> say();
echo $person -> user;
echo "<hr/>";
//资源类型
$fh = fopen("test.txt","r");
echo gettype($fh);//resource
//null
$test;
echo gettype($test);//NULL
echo "<hr/>";
$a = null;
echo gettype($a);//NULL
echo "<hr/>";
$arr = [1,2,3,4];
echo $arr[1];//2
unset($arr[1]);//释放一个值
echo "<pre>";
print_r($arr);
echo "</pre>";
echo gettype($a);//NULL
?>

运算符

<?php
/*
* 运算符
* 算术运算符:+ - * / %
* 自增、自减运算符:++ --
* 关系运算符: > < >= <= == === != <> !==
* 逻辑运算符:&&(and) ||(or) !
* 三目运算符  条件? 真:假
* 赋值运算符:= += -= *= /= %=
*/
//++在前:在赋值时,先把$a加1,在赋值给$b
$a = 1;
++$a;

echo $a;//2
$b = ++$a;
echo $a,$b;//3 3

//++在后:在赋值时,先赋值给$b,在把$b加1
$a = 1;
$a++;
echo $a;//2
$b = $a++;
echo $a,$b;//3,2

//关系运算符
$a = 10;
$b = "10";
$c = 10;
$d = 5;
$f = "5";
//!= (写作<>):无论声明类型,只要两个值不一样,就说不等于
var_dump($a != $b);//false , !=是==取反
var_dump($a != $c);//false , !=是==取反
var_dump($a != $d);//true
var_dump($a != $f);//true

//!==:两个变量的类型或者值有一个不一样,就是不相等

var_dump($a !== $c);//false
var_dump($a !== $d);//true
var_dump($a !== $b);//true
var_dump($a !== $f);//true

$a = 3;
$b = 4;
$c = 5;
$res = $a > $b and $a < $c or $c < $b;
var_dump($res);//false
var_dump(!$a);//false

$a = "hi,";
$b = "Alice";
echo $a.$b;//字符串拼接运算符.
$a.=$b;
echo $a;

$a = 10;
$b = 5;
echo $a>$b?"是假的":"是假的";//是假的
?>

分支与循环

<?php
//语句:
/*
* 分支语句:if switch
* 循环语句:for while do..while forEach
* 退出循环语句break,continue
*
*/
$a = 10;
$b = 20;
//条件判断简单条件使用if
if($a < $b){
echo "a小于b";
}else{
echo "a不小于b";
}

//情况比较多的使用switch..case
//break:终止条件,避免条件成立时,继续执行下一条
$num = mt_rand(1, 10);
echo $num."<hr/>";
switch ($num) {
case 1:
echo "num为1";
break;
case 2:
echo "num为2";
break;
case 3:
echo "num为3";
break;
case 4:
echo "num为4";
break;
default:
//当以上所有条件都不满足时,取default
echo "1-4之外的数";
break;
}
//使用for循环输出从1到10
echo "<hr/>";
for($i = 1; $i<=10; $i++){
echo $i."<hr/>";
}

//while
/*
* while(条件){
* 	条件完成时,此处每次都执行
* 必须要有个条件不满足的操作
* }
*/
//死循环
//while(true){
//	echo "hi"."<hr/>";
//}
$num = 1;//初始值
while($num <= 10){
echo $num."<hr/>";
$num++;
}

//do-while
/*
* do{
* 	做的内容
* }while(条件){
* 先执行代码,在判断条件满足不满足
* 特点:即使条件不满足,也会开启第一次循环
* }

*/
do{
echo "I am not 满足条件";
}while(false);
echo "<hr/>";

$num = 1;
do{
echo $num."<hr/>";
$num ++;
}while($num <= 10);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐