Maison développement back-end tutoriel php PHP基础开发代码示范

PHP基础开发代码示范

Jun 13, 2016 pm 01:04 PM
echo function gt lt

PHP基础开发代码示例~
最近打算重拾PHP来开发一些小型应用,很久没用PHP了,有些语法都生疏了,今天上午写了三个例子,基本上把之前的PHP复习了一下。

基础语法操作:

<?php //输出的方式测试
echo '###################输出测试################<br>';
echo '测试输出1(单引号)<br>';
echo "测试塑出2(双引号)<br>";
?>
='测试输出3(=表达式)<br>'?>
 echo '测试输出4(单个表达式)<br>'; ?>

<?php //类型
echo '###################类型测试################<br>';
$testInt = 1;
$testStr = "字符串";
$testFloat = 1.23;
$testBoolean = false; //false/true:如果转换成字符串则为空/"1",转换成整型则为0/1
$testArray = array("first"=>1,2,3,4,5);
$testStr2 = $testStr; //testStr修改,testStr2不会修改
$testStr3 = &$testStr; //testStr修改,testStr3也会修改

echo '整型:'.$testInt.'<br>';
echo '字符串型:'.$testStr.'<br>';
$testStr = '字符串修改了';
echo '字符串型修改后:'.$testStr.'<br>';
echo '字符串型修改后(2):'.$testStr2.'<br>';
echo '字符串型修改后(3):'.$testStr3.'<br>';

echo '浮点型:'.$testFloat.'<br>';
echo '布尔型:'.(int)$testBoolean.'<br>';
echo '数组测试(1):'.$testArray[0].'<br>';
echo '数组测试(2):'.$testArray['first'].'<br>';
print_r($testArray);
echo '<br>';
foreach ($testArray as $i => $value) {
    echo '数组迭代结果:'.$i."->".$value."<br>";
}

//IO操作
echo '##################IO操作####################<br>';
echo '读取该文件的内容:<br>';
$theFileName = "test_base.php"; //文件名称或者全路径
$handle = fopen ($theFileName, "rb");
$contents = fread ($handle, filesize ($theFileName));
fclose ($handle); 
echo '<div style="border:1px solid #aaa;color:blue;"><pre class="brush:php;toolbar:false">'.htmlspecialchars($contents).'
Copier après la connexion
'; ?>

数据库的处理:
<?php //四种引用方式
//require 'test_base.php'; //无条件的引用,报错会终止应用,引用的文件只处理一次
//require_once 'test_base.php'; //无条件的引用,报错会终止应用,引用的文件只处理一次并只显示一次
//include 'test_base.php'; //可有条件的引用,报错不会终止应用,引用的文件处理多次
//include_once 'test_base.php'; //可有条件的引用,报错不会终止应用,引用的文件处理多次但只显示一次

//数据库的测试
$hostname = '192.168.1.6'; /*数据库服务器访问地址*/
$username = 'root'; /*数据库用户帐号*/
$password = 'root'; /*数据库密码*/
$database = 'phptest'; /*数据库名称*/
$databaseCharset = 'GBK'; /*数据库编码,防止插入中文乱码和报错*/

//获取请求信息
$actionSubmit = $_REQUEST['submit'];
$reqTheType = $_REQUEST['theType'];
if($reqTheType == null || $reqTheType == '') {
	$reqTheType = '1';
}
echo '请求信息:'.$actionSubmit."|".$reqTheType.'<br>';

if($actionSubmit != null && $actionSubmit != '') {
	if($reqTheType == '1') {
		testSearch();
	}
	if($reqTheType == '2') {
		testInsert();
		testSearch();
	}
	if($reqTheType == '3') {
		testUpdate();
		testSearch();
	}
}

/**
 * 数据库查询
 * Enter description here ...
 */
function testSearch() {
	echo '查询数据<br>';
	global $hostname,$username,$password,$database,$databaseCharset;
	
	$currentConn = null;
	$currentConn = mysql_connect ( $hostname, $username, $password );
	mysql_select_db ( $database );
	mysql_query("set names charset ".$databaseCharset);
	mysql_query("set names ".$databaseCharset);
	$result = mysql_query ( "select * from e_user" ); //查询动作返回的是result结果集
	while ( $row = mysql_fetch_object ( $result ) ) {
		echo $row->uri . "\t" . ($row->username) . "<br>";
	}
	mysql_free_result ( $result );
	mysql_close ( $currentConn );
}

/**
 * 数据库数据添加
 * Enter description here ...
 */
function testInsert() {
	global $hostname,$username,$password,$database,$databaseCharset;
	$insertSql = "insert into e_user(uri,username,password) values";
	$insertSql .= "(";
	$insertSql .= "'".generateId()."','测试用户','123456'";
	$insertSql .= ")";
	$currentConn = null;
	$currentConn = mysql_connect ( $hostname, $username, $password );
	mysql_select_db ( $database );
	mysql_query("set names charset ".$databaseCharset);
	mysql_query("set names ".$databaseCharset);
	echo '添加数据'.$insertSql.'<br>';
	$result = mysql_query($insertSql); //插入动作返回的是boolean
	if(!$result) {
		die('Error: ' . mysql_error());
	}
	mysql_close ( $currentConn );
}

/**
 * 数据库修改
 * Enter description here ...
 */
function testUpdate() {
	global $hostname,$username,$password,$database,$databaseCharset;
	$updateSql = "update e_user";
	$updateSql .= " set username='修改后的用户名称' where uri = '001'";
	$currentConn = null;
	$currentConn = mysql_connect ( $hostname, $username, $password );
	mysql_select_db ( $database );
	mysql_query("set names charset ".$databaseCharset);
	mysql_query("set names ".$databaseCharset);
	echo '修改数据'.$updateSql.'<br>';
	$result = mysql_query($updateSql); //插入动作返回的是boolean
	if(!$result) {
		die('Error: ' . mysql_error());
	}
	mysql_close ( $currentConn );
}

/**
 * 自动生成ID号
 * @param unknown_type $count
 */
function generateId($count = 6) {
	$resultId = '';
	for($i=0;$i

Copier après la connexion
checked="checked" } ?>/>查询数据测试 checked="checked" } ?>/>添加数据测试 checked="checked" } ?>/>修改数据测试


面向对象编程:
<?php //基础的抽象用户类
abstract class BaseUser {
	protected $flag = 0;
	abstract function showInfo();
}

//接口类
interface Module {
	function start();
	function stop();
}

//测试PHP类和对象
class MyUser extends BaseUser implements Module {
	/*成员变量*/
	private $uri = '';
	private $type = '';
	protected $username = '';
	public $password = '';
	
	/*静态变量*/
	const USER_TYPE_NORMAL = "normal";
	
	/*构造函数*/
	function __construct($uri = '',$username = '', $password = '') {
		$this->uri = $uri;
		$this->username = $username;
		$this->password = $password;
		$this->flag = '100';
		$this->type = self::USER_TYPE_NORMAL;
	}
	
	/*测试静态函数的处理*/
	static function testStatic() {
		//$this->username = 'static'; //该方法是错误的,静态方法中只能操作静态变量
		return self::USER_TYPE_NORMAL;
	}
	
	/*get set 方法用于管理内部的字段属性*/
	public function getUri() {
		return $this->uri;
	}
	public function getUsername() {
		return $this->username;
	}
	public function getPassword() {
		return $this->password;
	}
	public function setUri($uri) {
		$this->uri = $uri;
	}
	public function setUsername($username) {
		$this->username = $username;
	}
	public function setPassword($password) {
		$this->password = $password;
	}
	public function getType() {
		return $this->type;
	}
	public function setType($type) {
		$this->type = $type;
	}
	
	
	/*实现底层的抽象方法*/
	function showInfo() {
		echo '我是MyUser对象.';
	}
	
	//实现接口方法
	public function start() {
		echo '启动MyUser对象....';
	}
	
	//实现接口方法
	public function stop() {
		echo '停止MyUser对象....';	
	}


}

//扩展自MyUser的类
class MyExtendUser extends MyUser implements Module {
	
	/*覆盖父类的构造函数*/
	function __construct($uri = '',$username = '', $password = '') {
		//调用父类的构造函数
		parent::__construct($uri,$username,$password);
		
		//实现自己的一些初始化动作
		$this->flag = '200';
	}
	
	/*覆盖父类的getUsername方法*/
	public function getUsername() {
		return '继承自MyUser,'.$this->username;
	}
	
	//实现接口方法
	public function start() {
		echo '启动MyExtendUser对象....';
	}
	
	//实现接口方法
	public function stop() {
		echo '停止MyExtendUser对象....';	
	}
}

//测试用户对象
$theUserObj = new MyUser('001','测试用户1','123');
echo '用户名称:'.$theUserObj->getUsername().'<br>';
print_r($theUserObj);
echo '<br>';
echo '测试静态函数1:'.$theUserObj->testStatic().'<br>';
echo '测试静态函数2:'.MyUser::testStatic().'<br>';
echo '测试实现的接口:';
$theUserObj->start();
echo '<br>';

//测试继承
$theUserObj2 = new MyExtendUser('002','测试用户2','123');
echo '用户名称2(继承):'.$theUserObj2->getUsername().'<br>';
print_r($theUserObj2);
echo '<br>';
echo '测试实现的接口2:';
$theUserObj2->start();
echo '<br>';



?>

Copier après la connexion

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Que signifie fonction ? Que signifie fonction ? Aug 04, 2023 am 10:33 AM

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Correctif : l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Jan 30, 2024 am 09:08 AM

À l'ère actuelle de développement technologique rapide, les langages de programmation poussent comme des champignons après la pluie. L'un des langages qui a beaucoup retenu l'attention est le langage Go, apprécié par de nombreux développeurs pour sa simplicité, son efficacité, sa sécurité de concurrence et d'autres fonctionnalités. Le langage Go est connu pour son écosystème solide avec de nombreux excellents projets open source. Cet article présentera cinq projets open source sélectionnés en langage Go et amènera les lecteurs à explorer le monde des projets open source en langage Go. KubernetesKubernetes est un moteur d'orchestration de conteneurs open source pour l'automatisation

Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials : 5 recommandations de framework populaires" En tant que langage de programmation rapide et efficace, le langage Go est favorisé par de plus en plus de développeurs. Afin d'améliorer l'efficacité du développement et d'optimiser la structure du code, de nombreux développeurs choisissent d'utiliser des frameworks pour créer rapidement des applications. Dans le monde du langage Go, il existe de nombreux excellents frameworks parmi lesquels choisir. Cet article présentera 5 frameworks de langage Go populaires et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser ces frameworks. 1.GinGin est un framework Web léger avec une rapidité

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Jul 29, 2023 am 08:22 AM

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Implémentation de la planification distribuée des tâches à l'aide du framework Web Echo de Golang Implémentation de la planification distribuée des tâches à l'aide du framework Web Echo de Golang Jun 24, 2023 am 11:49 AM

Avec le développement d'Internet et les progrès des technologies de l'information, l'ère du Big Data est arrivée, et des domaines tels que l'analyse des données et l'apprentissage automatique ont également été largement utilisés. Dans ces domaines, la planification des tâches est un problème inévitable. Comment parvenir à une planification efficace des tâches est crucial pour améliorer l’efficacité. Dans cet article, nous présenterons comment utiliser le framework Web Echo de Golang pour implémenter la planification distribuée des tâches. 1. Introduction au framework Echo Echo est un framework GoWeb hautes performances, évolutif et léger. Il est basé sur HTTP

See all articles