PHP變數與常量學習

宋霸霸發表於2024-07-02
<?php
// php的列印與輸出
// 1.echo"顯示"輸出內容到瀏覽器 沒有返回值
// 2.print'列印' 有返回值 可用於三元運算子中
// var_dump()可以返回變數的完整資訊
// 4.print_r()列印輸出陣列,第二個引數設定為true 可以將變數的資訊轉換成字串,
// 不輸出到瀏覽器,只是返回,通常用於線上除錯


echo 'how you doing?<br>';

$res = print'你好';
echo '<hr>';
var_dump($res);

echo'<hr>';

$tel = 123456789;
//  echo $tel,$tel,tel;
echo $tel . '||' . $tel . '||' . $tel;
//  ob_clean();

$arr = ['花生','玉米','火龍果','青蘋果',45,63,33];
//echo $arr// Warning:  Array to string conversion in 
echo'<pre>';
print_r($arr);
echo'<hr>';
var_dump($arr);

$arr2 = ['uniapp','thinkphp','bootstrap'];
$res = print_r($arr2,true);
file_put_contents('log.txt','調錯資訊:'.$res);

?>

   <!-- 2 -->
<?php
 //  php變數 8種資料型別 4標量型別 2符合型別(陣列,物件) 2特殊型別(null,resource)

 // 標量型別  布林型boolean 整形int 字串string  浮點型float
 $username = 'admin';
 $username=123;
 $username=23.32;
 $username=true;
  
 echo $username;
 
 var_dump( $username );



 //  陣列
 // 索引陣列:下表為整型的陣列
 $arr = [1,2,3,4,'admin'];
 echo '<pre>';
 var_dump($arr);


 //  <!-- 關聯陣列:下標為字串的陣列 -->
 $info = [ 'uname'=>'chloe', 'email'=>'951242@qq.com','age'=>28,'gender'=>0];
 var_dump($info);

 // 陣列的訪問
 echo $arr[4].'<br>';
 echo $info['email'];


 //  物件 類例項化的結果
 //  class NBaplayer{ 

 //  }
 //  $jordan = new NBaplayer


 //  null  1.表示一個變數沒有值 空  
 // 2.不表示空格 空字串 零
 // 3.不區分大小寫
 //   ob_clean();//不起作用?

 $int = 34;
 var_dump($int);
 // 如何宣告一個變數為空
 // 1.
  $int = null;
  echo '<br>';
  var_dump($int);

 // 2.unset釋放變數
  $username = 'xi xi';  
  unset($username);
  @var_dump($username);

  //resource 資源型別 儲存到外部資源的一個引用
  $handle=fopen('log.txt','w');
 //   var_dump($handle);//resource(4) of type (stream)


 // php變數型別轉換
 // 強制型別轉換(臨時) 應用於url query string parameter
 //    var_dump($_GEF['page']);//string(1) "2"
 // 分頁資料必須是整型,才能計算偏移量 offset
 $page = (int)$_GET['$page'];
 echo'<br>';
 var_dump($page);

 if($page === 10)
 {
    echo'資料正常';
 }else{
    echo'非法資料';
 }


 $uid = 25;
 //  var_dump($uid,(string)$uid,(float)$uid);
 var_dump((array)$uid,((array)$uid)[0]);

 //  系統自動轉換變數型別
 $foo = '100pages';
 @$foo += 200;//$foo = $foo+200;
 var_dump($foo);


 echo'<hr>';
 $foo += 12.8;
 var_dump($foo);


 @$res = null + '10kg rice';
 var_dump($res);


 @$res = 5 + '10kg rice';
 var_dump($res);


 $user = ' chloe';
 //字串的拼接
 echo 'how you doing'.$user;
 echo '<hr>';

 //  bool型別的轉換
 @var_dump($email);//null
 // null<===> false
 if(!@$email)
 {
    echo'你好';
 }


 $p = $_GET ['page'];
 echo gettype($p);//string
 echo gettype((int)$p);//integer只是臨時轉換
 echo gettype($p);//string

 echo 'hr';

 //永遠轉化變數型別

 settype($p,'integer');
 echo gettype($p);//integer

//  變數:程式碼中需要暫存的資料載體 可以複用 按名訪問
// php變數命名規則
// 1.變數規則要讓你的partner望文生意
// 2.變數名不能以數字開頭,可以以字母或者下劃線開頭後面跟上字母數字下劃線
// 4.多個單片語成的變數 itemprice  itemPrice  itemName itenDesc


$_3site = 'taobao.com';
echo $_3site;

$useername = 'chloe';
$USERNAME = 'admin';

echo $USERNAME;

// var_dump($username);
// VAR_DUMP($USERNAME);

// ECHO SHA1('wwwphpcn');




// 變數賦值
// 1.傳值賦值
// 2.引用賦值 &


// 傳值賦值  將源變數$a的值 複製出來一份新的值 記憶體空間地址給另一個變數$b,修改兩個變數的值  互不影響
$a = 45;
$b = $a;

printf('$a的值為%d,$b的值為%d<br>',$a,$b);

$a = 450;

// printf('$a的值為%d,%b的值為%d<br>',$a,$b);



// 引用賦值 & 地址引用符:不存在複製操作  引用賦值更加快捷
// 新變數$price2引用/指向了原始變數(空間地址),互相影響

$price1 = 8888;
$price2 = &$price1;
printf('$price1的值為%d,$price2的值為%d<ber>',$price1,$price2);


$price1 = 7999;
printf('$price1的值為%d,$price2的值為%d<ber>',$price1,$price2);


// 變數的檢查與釋放
// isset()檢測變數是否被被定義 存在並且不為null返回true,否則返回false
var_dump(isset($pwd));

if(isset($pwd))
{
    echo'使用者密碼填寫了';
}

//empty()檢測一個變數是否為空,為空才返回true 不為空返回false
$username = 'admin';
var_dump(empty($username));

if(isset($username) && !empty($username))
{
    echo '使用者名稱存在';
}

$token = '';
var_dump(empty($token));//true

$token = 0;
var_dump(empty($token));//true

$token = false;
var_dump(empty($token));//bool(true)

$token = 1;
var_dump(empty($token));//bool(false)

$token = true;
var_dump(empty($token));//bool(false)

// 釋放
// unset()釋放掉的變數  變為空


// 常量
// 1.固定值,常量不能被從新定義  不能被取消
// 2.常量的命名前不能¥
// 3.常量的明名推薦全部大寫
// 4.php全域性成員:常量 函式 類 介面 (不接受作用域的限制)
// 變數不是全域性變數,嚴格受作用域的限制


// 定義常量
// define()
define('NATION','china');
echo NATION;

// Const關鍵字  字面量
const USER_NOT_EXSIT = '使用者不存在';
echo json_encode(['msg'=>USER_NOT_EXSIT],320);

printf('國籍:%s',NATION);

class User{
    // 類常量只能用const關鍵字宣告
    const APP_PATH = "/0802/part1";
}

// 常量必須初始化賦值
$height;
const GENDER = '女';


// 變數作用域
// 函式體外聲名的變數的全域性變數
$one = 200;
$two = 300;
function add(int $a,int $b):string
{
    return $a+$b;
}
//  var_dump(add(1,2));
// var_dump(add($one,$two));

function add1()
{
    $a = 10;
    $b = 11;
    echo ($a+$b);
}

add1();
echo $a;//非法訪問 在函式外部不能訪問函式內部定義的全域性變數s

?>

  

相關文章